# Copyright (C) 2019 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# This file is automatically generated by tools/gen_bazel. Do not edit.

load("@perfetto_cfg//:perfetto_cfg.bzl", "PERFETTO_CONFIG")
load(
    "@perfetto//bazel:rules.bzl",
    "perfetto_build_config_cc_library",
    "perfetto_cc_binary",
    "perfetto_filegroup",
    "perfetto_genrule",
    "perfetto_cc_ipc_library",
    "perfetto_cc_library",
    "perfetto_cc_proto_descriptor",
    "perfetto_cc_proto_library",
    "perfetto_cc_protocpp_library",
    "perfetto_cc_protozero_library",
    "perfetto_java_proto_library",
    "perfetto_java_lite_proto_library",
    "perfetto_proto_library",
    "perfetto_proto_descriptor",
    "perfetto_py_binary",
    "perfetto_py_library",
    "perfetto_gensignature_internal_only",
)

package(default_visibility = ["//visibility:private"])

licenses(["notice"])

exports_files(["NOTICE"])

# ##############################################################################
# Internal targets
# ##############################################################################

# GN target: //src/ipc/protoc_plugin:ipc_plugin
perfetto_cc_binary(
    name = "ipc_plugin",
    srcs = [
        "src/ipc/protoc_plugin/ipc_plugin.cc",
    ],
    deps = [
        ":src_base_base",
    ] + PERFETTO_CONFIG.deps.protoc_lib,
)

# GN target: //src/ipc:perfetto_ipc
perfetto_cc_library(
    name = "perfetto_ipc",
    srcs = [
        ":src_ipc_client",
        ":src_ipc_common",
        ":src_ipc_host",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_ipc_ipc",
        ":include_perfetto_protozero_protozero",
    ],
    deps = [
        ":protos_perfetto_ipc_wire_protocol_cpp",
        ":src_base_base",
        ":src_base_unix_socket",
    ],
    linkstatic = True,
)

# GN target: //src/protozero/protoc_plugin:cppgen_plugin
perfetto_cc_binary(
    name = "cppgen_plugin",
    srcs = [
        "src/protozero/protoc_plugin/cppgen_plugin.cc",
    ],
    deps = [
        ":src_base_base",
    ] + PERFETTO_CONFIG.deps.protoc_lib,
)

# GN target: //src/protozero/protoc_plugin:protozero_plugin
perfetto_cc_binary(
    name = "protozero_plugin",
    srcs = [
        "src/protozero/protoc_plugin/protozero_plugin.cc",
    ],
    deps = [
        ":src_base_base",
    ] + PERFETTO_CONFIG.deps.protoc_lib,
)

# GN target: //src/protozero:protozero
perfetto_cc_library(
    name = "protozero",
    srcs = [
        "src/protozero/field.cc",
        "src/protozero/message.cc",
        "src/protozero/message_arena.cc",
        "src/protozero/message_handle.cc",
        "src/protozero/packed_repeated_fields.cc",
        "src/protozero/proto_decoder.cc",
        "src/protozero/scattered_heap_buffer.cc",
        "src/protozero/scattered_stream_null_delegate.cc",
        "src/protozero/scattered_stream_writer.cc",
        "src/protozero/static_buffer.cc",
        "src/protozero/virtual_destructors.cc",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_protozero_protozero",
    ],
    deps = [
        ":src_base_base",
    ],
    linkstatic = True,
)

# GN target: //test:client_api_example
perfetto_cc_binary(
    name = "client_api_example",
    srcs = [
        ":include_perfetto_base_base",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_tracing_core_forward_decls",
        ":include_perfetto_tracing_tracing",
        "test/client_api_example.cc",
    ],
    deps = [
        ":libperfetto_client_experimental",
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_cpp",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_trace_android_zero",
        ":protos_perfetto_trace_chrome_zero",
        ":protos_perfetto_trace_filesystem_zero",
        ":protos_perfetto_trace_ftrace_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_zero",
        ":protos_perfetto_trace_minimal_zero",
        ":protos_perfetto_trace_non_minimal_zero",
        ":protos_perfetto_trace_perfetto_zero",
        ":protos_perfetto_trace_power_zero",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_ps_zero",
        ":protos_perfetto_trace_sys_stats_zero",
        ":protos_perfetto_trace_system_info_zero",
        ":protos_perfetto_trace_track_event_cpp",
        ":protos_perfetto_trace_track_event_zero",
    ],
)

# GN target: //tools/proto_filter:proto_filter
perfetto_cc_binary(
    name = "proto_filter",
    srcs = [
        ":src_protozero_filtering_bytecode_common",
        ":src_protozero_filtering_bytecode_generator",
        ":src_protozero_filtering_bytecode_parser",
        ":src_protozero_filtering_filter_util",
        ":src_protozero_filtering_message_filter",
        "tools/proto_filter/proto_filter.cc",
    ],
    deps = [
        ":protozero",
        ":src_base_base",
    ] + PERFETTO_CONFIG.deps.protobuf_full,
)

# GN target: //tools/proto_merger:proto_merger
perfetto_cc_binary(
    name = "proto_merger",
    srcs = [
        "tools/proto_merger/allowlist.cc",
        "tools/proto_merger/allowlist.h",
        "tools/proto_merger/main.cc",
        "tools/proto_merger/proto_file.cc",
        "tools/proto_merger/proto_file.h",
        "tools/proto_merger/proto_file_serializer.cc",
        "tools/proto_merger/proto_file_serializer.h",
        "tools/proto_merger/proto_merger.cc",
        "tools/proto_merger/proto_merger.h",
    ],
    deps = [
        ":src_base_base",
    ] + PERFETTO_CONFIG.deps.protobuf_full,
)

# GN target: //:libperfetto
perfetto_cc_library(
    name = "libperfetto",
    srcs = [
        ":src_android_internal_headers",
        ":src_android_internal_lazy_library_loader",
        ":src_android_stats_android_stats",
        ":src_android_stats_perfetto_atoms",
        ":src_kallsyms_kallsyms",
        ":src_protozero_filtering_bytecode_common",
        ":src_protozero_filtering_bytecode_parser",
        ":src_protozero_filtering_message_filter",
        ":src_traced_probes_android_log_android_log",
        ":src_traced_probes_common_common",
        ":src_traced_probes_data_source",
        ":src_traced_probes_filesystem_filesystem",
        ":src_traced_probes_ftrace_format_parser_format_parser",
        ":src_traced_probes_ftrace_ftrace",
        ":src_traced_probes_ftrace_ftrace_procfs",
        ":src_traced_probes_initial_display_state_initial_display_state",
        ":src_traced_probes_metatrace_metatrace",
        ":src_traced_probes_packages_list_packages_list",
        ":src_traced_probes_packages_list_packages_list_parser",
        ":src_traced_probes_power_power",
        ":src_traced_probes_probes",
        ":src_traced_probes_probes_src",
        ":src_traced_probes_ps_ps",
        ":src_traced_probes_sys_stats_sys_stats",
        ":src_traced_probes_system_info_system_info",
        ":src_traced_service_service",
        ":src_tracing_common",
        ":src_tracing_consumer_api_deprecated_consumer_api_deprecated",
        ":src_tracing_core_core",
        ":src_tracing_core_service",
        ":src_tracing_ipc_common",
        ":src_tracing_ipc_consumer_consumer",
        ":src_tracing_ipc_default_socket",
        ":src_tracing_ipc_producer_producer",
        ":src_tracing_ipc_service_service",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_ipc_ipc",
        ":include_perfetto_ext_traced_sys_stats_counters",
        ":include_perfetto_ext_traced_traced",
        ":include_perfetto_ext_tracing_core_core",
        ":include_perfetto_ext_tracing_ipc_ipc",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_public_public",
        ":include_perfetto_tracing_core_core",
        ":include_perfetto_tracing_core_forward_decls",
        ":include_perfetto_tracing_tracing",
    ],
    deps = [
        ":perfetto_ipc",
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_cpp",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_cpp",
        ":protos_perfetto_config_ftrace_cpp",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_cpp",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_cpp",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_cpp",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_cpp",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_cpp",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_cpp",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_cpp",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_cpp",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_ipc_cpp",
        ":protos_perfetto_ipc_ipc",
        ":protos_perfetto_trace_android_zero",
        ":protos_perfetto_trace_chrome_zero",
        ":protos_perfetto_trace_filesystem_zero",
        ":protos_perfetto_trace_ftrace_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_zero",
        ":protos_perfetto_trace_minimal_zero",
        ":protos_perfetto_trace_non_minimal_zero",
        ":protos_perfetto_trace_perfetto_zero",
        ":protos_perfetto_trace_power_zero",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_ps_zero",
        ":protos_perfetto_trace_sys_stats_zero",
        ":protos_perfetto_trace_system_info_zero",
        ":protos_perfetto_trace_track_event_cpp",
        ":protos_perfetto_trace_track_event_zero",
        ":protozero",
        ":src_base_base",
    ],
    linkstatic = True,
)

# GN target: //include/perfetto/base:base
perfetto_filegroup(
    name = "include_perfetto_base_base",
    srcs = [
        "include/perfetto/base/build_config.h",
        "include/perfetto/base/compiler.h",
        "include/perfetto/base/export.h",
        "include/perfetto/base/flat_set.h",
        "include/perfetto/base/logging.h",
        "include/perfetto/base/platform_handle.h",
        "include/perfetto/base/proc_utils.h",
        "include/perfetto/base/status.h",
        "include/perfetto/base/task_runner.h",
        "include/perfetto/base/template_util.h",
        "include/perfetto/base/thread_utils.h",
        "include/perfetto/base/time.h",
    ],
)

# GN target: //include/perfetto/ext/base/http:http
perfetto_filegroup(
    name = "include_perfetto_ext_base_http_http",
    srcs = [
        "include/perfetto/ext/base/http/http_server.h",
        "include/perfetto/ext/base/http/sha1.h",
    ],
)

# GN target: //include/perfetto/ext/base:base
perfetto_filegroup(
    name = "include_perfetto_ext_base_base",
    srcs = [
        "include/perfetto/ext/base/android_utils.h",
        "include/perfetto/ext/base/base64.h",
        "include/perfetto/ext/base/circular_queue.h",
        "include/perfetto/ext/base/container_annotations.h",
        "include/perfetto/ext/base/crash_keys.h",
        "include/perfetto/ext/base/ctrl_c_handler.h",
        "include/perfetto/ext/base/endian.h",
        "include/perfetto/ext/base/event_fd.h",
        "include/perfetto/ext/base/file_utils.h",
        "include/perfetto/ext/base/flat_hash_map.h",
        "include/perfetto/ext/base/getopt.h",
        "include/perfetto/ext/base/getopt_compat.h",
        "include/perfetto/ext/base/hash.h",
        "include/perfetto/ext/base/metatrace.h",
        "include/perfetto/ext/base/metatrace_events.h",
        "include/perfetto/ext/base/no_destructor.h",
        "include/perfetto/ext/base/optional.h",
        "include/perfetto/ext/base/paged_memory.h",
        "include/perfetto/ext/base/periodic_task.h",
        "include/perfetto/ext/base/pipe.h",
        "include/perfetto/ext/base/scoped_file.h",
        "include/perfetto/ext/base/small_set.h",
        "include/perfetto/ext/base/small_vector.h",
        "include/perfetto/ext/base/string_splitter.h",
        "include/perfetto/ext/base/string_utils.h",
        "include/perfetto/ext/base/string_view.h",
        "include/perfetto/ext/base/string_writer.h",
        "include/perfetto/ext/base/subprocess.h",
        "include/perfetto/ext/base/sys_types.h",
        "include/perfetto/ext/base/temp_file.h",
        "include/perfetto/ext/base/thread_annotations.h",
        "include/perfetto/ext/base/thread_checker.h",
        "include/perfetto/ext/base/thread_task_runner.h",
        "include/perfetto/ext/base/thread_utils.h",
        "include/perfetto/ext/base/unix_socket.h",
        "include/perfetto/ext/base/unix_task_runner.h",
        "include/perfetto/ext/base/utils.h",
        "include/perfetto/ext/base/uuid.h",
        "include/perfetto/ext/base/version.h",
        "include/perfetto/ext/base/waitable_event.h",
        "include/perfetto/ext/base/watchdog.h",
        "include/perfetto/ext/base/watchdog_noop.h",
        "include/perfetto/ext/base/watchdog_posix.h",
        "include/perfetto/ext/base/weak_ptr.h",
    ],
)

# GN target: //include/perfetto/ext/ipc:ipc
perfetto_filegroup(
    name = "include_perfetto_ext_ipc_ipc",
    srcs = [
        "include/perfetto/ext/ipc/async_result.h",
        "include/perfetto/ext/ipc/basic_types.h",
        "include/perfetto/ext/ipc/client.h",
        "include/perfetto/ext/ipc/client_info.h",
        "include/perfetto/ext/ipc/codegen_helpers.h",
        "include/perfetto/ext/ipc/deferred.h",
        "include/perfetto/ext/ipc/host.h",
        "include/perfetto/ext/ipc/service.h",
        "include/perfetto/ext/ipc/service_descriptor.h",
        "include/perfetto/ext/ipc/service_proxy.h",
    ],
)

# GN target: //include/perfetto/ext/trace_processor/importers/memory_tracker:memory_tracker
perfetto_filegroup(
    name = "include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
    srcs = [
        "include/perfetto/ext/trace_processor/importers/memory_tracker/graph.h",
        "include/perfetto/ext/trace_processor/importers/memory_tracker/graph_processor.h",
        "include/perfetto/ext/trace_processor/importers/memory_tracker/memory_allocator_node_id.h",
        "include/perfetto/ext/trace_processor/importers/memory_tracker/memory_graph_edge.h",
        "include/perfetto/ext/trace_processor/importers/memory_tracker/raw_memory_graph_node.h",
        "include/perfetto/ext/trace_processor/importers/memory_tracker/raw_process_memory_node.h",
    ],
)

# GN target: //include/perfetto/ext/trace_processor:export_json
perfetto_filegroup(
    name = "include_perfetto_ext_trace_processor_export_json",
    srcs = [
        "include/perfetto/ext/trace_processor/export_json.h",
    ],
)

# GN target: //include/perfetto/ext/traced:sys_stats_counters
perfetto_filegroup(
    name = "include_perfetto_ext_traced_sys_stats_counters",
    srcs = [
        "include/perfetto/ext/traced/sys_stats_counters.h",
    ],
)

# GN target: //include/perfetto/ext/traced:traced
perfetto_filegroup(
    name = "include_perfetto_ext_traced_traced",
    srcs = [
        "include/perfetto/ext/traced/data_source_types.h",
        "include/perfetto/ext/traced/traced.h",
    ],
)

# GN target: //include/perfetto/ext/tracing/core:core
perfetto_filegroup(
    name = "include_perfetto_ext_tracing_core_core",
    srcs = [
        "include/perfetto/ext/tracing/core/basic_types.h",
        "include/perfetto/ext/tracing/core/commit_data_request.h",
        "include/perfetto/ext/tracing/core/consumer.h",
        "include/perfetto/ext/tracing/core/observable_events.h",
        "include/perfetto/ext/tracing/core/producer.h",
        "include/perfetto/ext/tracing/core/shared_memory.h",
        "include/perfetto/ext/tracing/core/shared_memory_abi.h",
        "include/perfetto/ext/tracing/core/shared_memory_arbiter.h",
        "include/perfetto/ext/tracing/core/slice.h",
        "include/perfetto/ext/tracing/core/trace_packet.h",
        "include/perfetto/ext/tracing/core/trace_stats.h",
        "include/perfetto/ext/tracing/core/trace_writer.h",
        "include/perfetto/ext/tracing/core/tracing_service.h",
    ],
)

# GN target: //include/perfetto/ext/tracing/ipc:ipc
perfetto_filegroup(
    name = "include_perfetto_ext_tracing_ipc_ipc",
    srcs = [
        "include/perfetto/ext/tracing/ipc/consumer_ipc_client.h",
        "include/perfetto/ext/tracing/ipc/default_socket.h",
        "include/perfetto/ext/tracing/ipc/producer_ipc_client.h",
        "include/perfetto/ext/tracing/ipc/service_ipc_host.h",
    ],
)

# GN target: //include/perfetto/profiling:pprof_builder
perfetto_filegroup(
    name = "include_perfetto_profiling_pprof_builder",
    srcs = [
        "include/perfetto/profiling/pprof_builder.h",
    ],
)

# GN target: //include/perfetto/protozero:protozero
perfetto_filegroup(
    name = "include_perfetto_protozero_protozero",
    srcs = [
        "include/perfetto/protozero/contiguous_memory_range.h",
        "include/perfetto/protozero/copyable_ptr.h",
        "include/perfetto/protozero/cpp_message_obj.h",
        "include/perfetto/protozero/field.h",
        "include/perfetto/protozero/field_writer.h",
        "include/perfetto/protozero/message.h",
        "include/perfetto/protozero/message_arena.h",
        "include/perfetto/protozero/message_handle.h",
        "include/perfetto/protozero/packed_repeated_fields.h",
        "include/perfetto/protozero/proto_decoder.h",
        "include/perfetto/protozero/proto_utils.h",
        "include/perfetto/protozero/root_message.h",
        "include/perfetto/protozero/scattered_heap_buffer.h",
        "include/perfetto/protozero/scattered_stream_null_delegate.h",
        "include/perfetto/protozero/scattered_stream_writer.h",
        "include/perfetto/protozero/static_buffer.h",
    ],
)

# GN target: //include/perfetto/public:public
perfetto_filegroup(
    name = "include_perfetto_public_public",
    srcs = [
        "include/perfetto/public/consumer_api.h",
    ],
)

# GN target: //include/perfetto/trace_processor:basic_types
perfetto_filegroup(
    name = "include_perfetto_trace_processor_basic_types",
    srcs = [
        "include/perfetto/trace_processor/basic_types.h",
        "include/perfetto/trace_processor/status.h",
    ],
)

# GN target: //include/perfetto/trace_processor:storage
perfetto_filegroup(
    name = "include_perfetto_trace_processor_storage",
    srcs = [
        "include/perfetto/trace_processor/trace_blob.h",
        "include/perfetto/trace_processor/trace_blob_view.h",
        "include/perfetto/trace_processor/trace_processor_storage.h",
    ],
)

# GN target: //include/perfetto/trace_processor:trace_processor
perfetto_filegroup(
    name = "include_perfetto_trace_processor_trace_processor",
    srcs = [
        "include/perfetto/trace_processor/iterator.h",
        "include/perfetto/trace_processor/read_trace.h",
        "include/perfetto/trace_processor/ref_counted.h",
        "include/perfetto/trace_processor/trace_processor.h",
    ],
)

# GN target: //include/perfetto/tracing/core:core
perfetto_filegroup(
    name = "include_perfetto_tracing_core_core",
    srcs = [
        "include/perfetto/tracing/core/chrome_config.h",
        "include/perfetto/tracing/core/data_source_config.h",
        "include/perfetto/tracing/core/data_source_descriptor.h",
        "include/perfetto/tracing/core/trace_config.h",
        "include/perfetto/tracing/core/tracing_service_capabilities.h",
        "include/perfetto/tracing/core/tracing_service_state.h",
    ],
)

# GN target: //include/perfetto/tracing/core:forward_decls
perfetto_filegroup(
    name = "include_perfetto_tracing_core_forward_decls",
    srcs = [
        "include/perfetto/tracing/core/forward_decls.h",
    ],
)

# GN target: //include/perfetto/tracing:tracing
perfetto_filegroup(
    name = "include_perfetto_tracing_tracing",
    srcs = [
        "include/perfetto/tracing/backend_type.h",
        "include/perfetto/tracing/buffer_exhausted_policy.h",
        "include/perfetto/tracing/console_interceptor.h",
        "include/perfetto/tracing/data_source.h",
        "include/perfetto/tracing/debug_annotation.h",
        "include/perfetto/tracing/event_context.h",
        "include/perfetto/tracing/interceptor.h",
        "include/perfetto/tracing/internal/basic_types.h",
        "include/perfetto/tracing/internal/checked_scope.h",
        "include/perfetto/tracing/internal/compile_time_hash.h",
        "include/perfetto/tracing/internal/data_source_internal.h",
        "include/perfetto/tracing/internal/in_process_tracing_backend.h",
        "include/perfetto/tracing/internal/interceptor_trace_writer.h",
        "include/perfetto/tracing/internal/system_tracing_backend.h",
        "include/perfetto/tracing/internal/tracing_backend_fake.h",
        "include/perfetto/tracing/internal/tracing_muxer.h",
        "include/perfetto/tracing/internal/tracing_tls.h",
        "include/perfetto/tracing/internal/track_event_data_source.h",
        "include/perfetto/tracing/internal/track_event_internal.h",
        "include/perfetto/tracing/internal/track_event_interned_fields.h",
        "include/perfetto/tracing/internal/track_event_macros.h",
        "include/perfetto/tracing/internal/write_track_event_args.h",
        "include/perfetto/tracing/locked_handle.h",
        "include/perfetto/tracing/platform.h",
        "include/perfetto/tracing/string_helpers.h",
        "include/perfetto/tracing/trace_writer_base.h",
        "include/perfetto/tracing/traced_proto.h",
        "include/perfetto/tracing/traced_value.h",
        "include/perfetto/tracing/traced_value_forward.h",
        "include/perfetto/tracing/tracing.h",
        "include/perfetto/tracing/tracing_backend.h",
        "include/perfetto/tracing/tracing_policy.h",
        "include/perfetto/tracing/track.h",
        "include/perfetto/tracing/track_event.h",
        "include/perfetto/tracing/track_event_args.h",
        "include/perfetto/tracing/track_event_category_registry.h",
        "include/perfetto/tracing/track_event_interned_data_index.h",
        "include/perfetto/tracing/track_event_legacy.h",
        "include/perfetto/tracing/track_event_state_tracker.h",
    ],
)

# GN target: //src/android_internal:headers
perfetto_filegroup(
    name = "src_android_internal_headers",
    srcs = [
        "src/android_internal/atrace_hal.h",
        "src/android_internal/health_hal.h",
        "src/android_internal/incident_service.h",
        "src/android_internal/power_stats.h",
        "src/android_internal/statsd_logging.h",
        "src/android_internal/tracing_service_proxy.h",
    ],
)

# GN target: //src/android_internal:lazy_library_loader
perfetto_filegroup(
    name = "src_android_internal_lazy_library_loader",
    srcs = [
        "src/android_internal/lazy_library_loader.cc",
        "src/android_internal/lazy_library_loader.h",
    ],
)

# GN target: //src/android_stats:android_stats
perfetto_filegroup(
    name = "src_android_stats_android_stats",
    srcs = [
        "src/android_stats/statsd_logging_helper.cc",
        "src/android_stats/statsd_logging_helper.h",
    ],
)

# GN target: //src/android_stats:perfetto_atoms
perfetto_filegroup(
    name = "src_android_stats_perfetto_atoms",
    srcs = [
        "src/android_stats/perfetto_atoms.h",
    ],
)

# GN target: //src/base/http:http
perfetto_cc_library(
    name = "src_base_http_http",
    srcs = [
        "src/base/http/http_server.cc",
        "src/base/http/sha1.cc",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_base_http_http",
    ],
    deps = [
        ":src_base_base",
        ":src_base_unix_socket",
    ],
    linkstatic = True,
)

# GN target: //src/base:base
perfetto_cc_library(
    name = "src_base_base",
    srcs = [
        "src/base/android_utils.cc",
        "src/base/base64.cc",
        "src/base/crash_keys.cc",
        "src/base/ctrl_c_handler.cc",
        "src/base/event_fd.cc",
        "src/base/file_utils.cc",
        "src/base/getopt_compat.cc",
        "src/base/log_ring_buffer.h",
        "src/base/logging.cc",
        "src/base/metatrace.cc",
        "src/base/paged_memory.cc",
        "src/base/periodic_task.cc",
        "src/base/pipe.cc",
        "src/base/status.cc",
        "src/base/string_splitter.cc",
        "src/base/string_utils.cc",
        "src/base/string_view.cc",
        "src/base/subprocess.cc",
        "src/base/subprocess_posix.cc",
        "src/base/subprocess_windows.cc",
        "src/base/temp_file.cc",
        "src/base/thread_checker.cc",
        "src/base/thread_task_runner.cc",
        "src/base/time.cc",
        "src/base/unix_task_runner.cc",
        "src/base/utils.cc",
        "src/base/uuid.cc",
        "src/base/version.cc",
        "src/base/virtual_destructors.cc",
        "src/base/waitable_event.cc",
        "src/base/watchdog_posix.cc",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
    ],
    deps = [
    ] + PERFETTO_CONFIG.deps.version_header,
    linkstatic = True,
)

# GN target: //src/base:unix_socket
perfetto_cc_library(
    name = "src_base_unix_socket",
    srcs = [
        "src/base/unix_socket.cc",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
    ],
    linkstatic = True,
)

perfetto_genrule(
    name = "src_base_version_gen_h",
    srcs = [
        "CHANGELOG",
    ],
    outs = [
        "perfetto_version.gen.h",
    ],
    cmd = "$(location gen_version_header_py) --cpp_out=$@ --changelog=$(location CHANGELOG)",
    exec_tools = [
        ":gen_version_header_py",
    ],
)

# GN target: //src/ipc:client
perfetto_filegroup(
    name = "src_ipc_client",
    srcs = [
        "src/ipc/client_impl.cc",
        "src/ipc/client_impl.h",
        "src/ipc/service_proxy.cc",
    ],
)

# GN target: //src/ipc:common
perfetto_filegroup(
    name = "src_ipc_common",
    srcs = [
        "src/ipc/buffered_frame_deserializer.cc",
        "src/ipc/buffered_frame_deserializer.h",
        "src/ipc/deferred.cc",
        "src/ipc/virtual_destructors.cc",
    ],
)

# GN target: //src/ipc:host
perfetto_filegroup(
    name = "src_ipc_host",
    srcs = [
        "src/ipc/host_impl.cc",
        "src/ipc/host_impl.h",
    ],
)

# GN target: //src/kallsyms:kallsyms
perfetto_filegroup(
    name = "src_kallsyms_kallsyms",
    srcs = [
        "src/kallsyms/kernel_symbol_map.cc",
        "src/kallsyms/kernel_symbol_map.h",
        "src/kallsyms/lazy_kernel_symbolizer.cc",
        "src/kallsyms/lazy_kernel_symbolizer.h",
    ],
)

perfetto_cc_proto_descriptor(
    name = "src_perfetto_cmd_gen_cc_config_descriptor",
    deps = [
        ":protos_perfetto_config_perfetto_config_descriptor",
    ],
    outs = [
        "src/perfetto_cmd/perfetto_config.descriptor.h",
    ],
)

# GN target: //src/perfetto_cmd:perfetto_cmd
perfetto_filegroup(
    name = "src_perfetto_cmd_perfetto_cmd",
    srcs = [
        "src/perfetto_cmd/config.cc",
        "src/perfetto_cmd/config.h",
        "src/perfetto_cmd/packet_writer.cc",
        "src/perfetto_cmd/packet_writer.h",
        "src/perfetto_cmd/pbtxt_to_pb.cc",
        "src/perfetto_cmd/pbtxt_to_pb.h",
        "src/perfetto_cmd/perfetto_cmd.cc",
        "src/perfetto_cmd/perfetto_cmd.h",
        "src/perfetto_cmd/rate_limiter.cc",
        "src/perfetto_cmd/rate_limiter.h",
    ],
)

# GN target: //src/perfetto_cmd:trigger_producer
perfetto_filegroup(
    name = "src_perfetto_cmd_trigger_producer",
    srcs = [
        "src/perfetto_cmd/trigger_producer.cc",
        "src/perfetto_cmd/trigger_producer.h",
    ],
)

# GN target: //src/profiling/symbolizer:symbolize_database
perfetto_filegroup(
    name = "src_profiling_symbolizer_symbolize_database",
    srcs = [
        "src/profiling/symbolizer/symbolize_database.cc",
        "src/profiling/symbolizer/symbolize_database.h",
    ],
)

# GN target: //src/profiling/symbolizer:symbolizer
perfetto_filegroup(
    name = "src_profiling_symbolizer_symbolizer",
    srcs = [
        "src/profiling/symbolizer/breakpad_parser.cc",
        "src/profiling/symbolizer/breakpad_parser.h",
        "src/profiling/symbolizer/breakpad_symbolizer.cc",
        "src/profiling/symbolizer/breakpad_symbolizer.h",
        "src/profiling/symbolizer/elf.h",
        "src/profiling/symbolizer/local_symbolizer.cc",
        "src/profiling/symbolizer/local_symbolizer.h",
        "src/profiling/symbolizer/scoped_read_mmap.h",
        "src/profiling/symbolizer/scoped_read_mmap_posix.cc",
        "src/profiling/symbolizer/scoped_read_mmap_windows.cc",
        "src/profiling/symbolizer/subprocess.h",
        "src/profiling/symbolizer/subprocess_posix.cc",
        "src/profiling/symbolizer/subprocess_windows.cc",
        "src/profiling/symbolizer/symbolizer.cc",
        "src/profiling/symbolizer/symbolizer.h",
    ],
)

# GN target: //src/profiling:deobfuscator
perfetto_filegroup(
    name = "src_profiling_deobfuscator",
    srcs = [
        "src/profiling/deobfuscator.cc",
        "src/profiling/deobfuscator.h",
    ],
)

# GN target: //src/protozero/filtering:bytecode_common
perfetto_filegroup(
    name = "src_protozero_filtering_bytecode_common",
    srcs = [
        "src/protozero/filtering/filter_bytecode_common.h",
    ],
)

# GN target: //src/protozero/filtering:bytecode_generator
perfetto_filegroup(
    name = "src_protozero_filtering_bytecode_generator",
    srcs = [
        "src/protozero/filtering/filter_bytecode_generator.cc",
        "src/protozero/filtering/filter_bytecode_generator.h",
    ],
)

# GN target: //src/protozero/filtering:bytecode_parser
perfetto_filegroup(
    name = "src_protozero_filtering_bytecode_parser",
    srcs = [
        "src/protozero/filtering/filter_bytecode_parser.cc",
        "src/protozero/filtering/filter_bytecode_parser.h",
    ],
)

# GN target: //src/protozero/filtering:filter_util
perfetto_filegroup(
    name = "src_protozero_filtering_filter_util",
    srcs = [
        "src/protozero/filtering/filter_util.cc",
        "src/protozero/filtering/filter_util.h",
    ],
)

# GN target: //src/protozero/filtering:message_filter
perfetto_filegroup(
    name = "src_protozero_filtering_message_filter",
    srcs = [
        "src/protozero/filtering/message_filter.cc",
        "src/protozero/filtering/message_filter.h",
        "src/protozero/filtering/message_tokenizer.h",
    ],
)

# GN target: //src/protozero:proto_ring_buffer
perfetto_filegroup(
    name = "src_protozero_proto_ring_buffer",
    srcs = [
        "src/protozero/proto_ring_buffer.cc",
        "src/protozero/proto_ring_buffer.h",
    ],
)

# GN target: //src/trace_processor/analysis:analysis
perfetto_filegroup(
    name = "src_trace_processor_analysis_analysis",
    srcs = [
        "src/trace_processor/analysis/describe_slice.cc",
        "src/trace_processor/analysis/describe_slice.h",
    ],
)

# GN target: //src/trace_processor/containers:containers
perfetto_cc_library(
    name = "src_trace_processor_containers_containers",
    srcs = [
        "src/trace_processor/containers/bit_vector.cc",
        "src/trace_processor/containers/bit_vector_iterators.cc",
        "src/trace_processor/containers/nullable_vector.cc",
        "src/trace_processor/containers/row_map.cc",
        "src/trace_processor/containers/string_pool.cc",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_protozero_protozero",
        "src/trace_processor/containers/bit_vector.h",
        "src/trace_processor/containers/bit_vector_iterators.h",
        "src/trace_processor/containers/null_term_string_view.h",
        "src/trace_processor/containers/nullable_vector.h",
        "src/trace_processor/containers/row_map.h",
        "src/trace_processor/containers/string_pool.h",
    ],
    deps = [
        ":src_base_base",
    ],
    linkstatic = True,
)

# GN target: //src/trace_processor/db:db
perfetto_filegroup(
    name = "src_trace_processor_db_db",
    srcs = [
        "src/trace_processor/db/column.cc",
        "src/trace_processor/db/column.h",
        "src/trace_processor/db/compare.h",
        "src/trace_processor/db/table.cc",
        "src/trace_processor/db/table.h",
        "src/trace_processor/db/typed_column.h",
        "src/trace_processor/db/typed_column_internal.h",
    ],
)

# GN target: //src/trace_processor/importers/common:common
perfetto_filegroup(
    name = "src_trace_processor_importers_common_common",
    srcs = [
        "src/trace_processor/importers/common/args_tracker.cc",
        "src/trace_processor/importers/common/args_tracker.h",
        "src/trace_processor/importers/common/chunked_trace_reader.h",
        "src/trace_processor/importers/common/clock_tracker.cc",
        "src/trace_processor/importers/common/clock_tracker.h",
        "src/trace_processor/importers/common/event_tracker.cc",
        "src/trace_processor/importers/common/event_tracker.h",
        "src/trace_processor/importers/common/flow_tracker.cc",
        "src/trace_processor/importers/common/flow_tracker.h",
        "src/trace_processor/importers/common/global_args_tracker.cc",
        "src/trace_processor/importers/common/global_args_tracker.h",
        "src/trace_processor/importers/common/process_tracker.cc",
        "src/trace_processor/importers/common/process_tracker.h",
        "src/trace_processor/importers/common/slice_tracker.cc",
        "src/trace_processor/importers/common/slice_tracker.h",
        "src/trace_processor/importers/common/system_info_tracker.cc",
        "src/trace_processor/importers/common/system_info_tracker.h",
        "src/trace_processor/importers/common/trace_parser.h",
        "src/trace_processor/importers/common/track_tracker.cc",
        "src/trace_processor/importers/common/track_tracker.h",
    ],
)

# GN target: //src/trace_processor/importers/memory_tracker:graph_processor
perfetto_filegroup(
    name = "src_trace_processor_importers_memory_tracker_graph_processor",
    srcs = [
        "src/trace_processor/importers/memory_tracker/graph.cc",
        "src/trace_processor/importers/memory_tracker/graph_processor.cc",
        "src/trace_processor/importers/memory_tracker/memory_allocator_node_id.cc",
        "src/trace_processor/importers/memory_tracker/raw_memory_graph_node.cc",
        "src/trace_processor/importers/memory_tracker/raw_process_memory_node.cc",
    ],
)

perfetto_cc_proto_descriptor(
    name = "src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
    deps = [
        ":protos_third_party_chromium_chrome_track_event_descriptor",
    ],
    outs = [
        "src/trace_processor/importers/chrome_track_event.descriptor.h",
    ],
)

perfetto_cc_proto_descriptor(
    name = "src_trace_processor_importers_gen_cc_config_descriptor",
    deps = [
        ":protos_perfetto_config_descriptor",
    ],
    outs = [
        "src/trace_processor/importers/config.descriptor.h",
    ],
)

perfetto_cc_proto_descriptor(
    name = "src_trace_processor_importers_gen_cc_track_event_descriptor",
    deps = [
        ":protos_perfetto_trace_track_event_track_event_descriptor",
    ],
    outs = [
        "src/trace_processor/importers/track_event.descriptor.h",
    ],
)

perfetto_genrule(
    name = "src_trace_processor_metrics_sql_gen_amalgamated_sql_metrics",
    srcs = [
        "src/trace_processor/metrics/sql/android/android_batt.sql",
        "src/trace_processor/metrics/sql/android/android_camera.sql",
        "src/trace_processor/metrics/sql/android/android_camera_unagg.sql",
        "src/trace_processor/metrics/sql/android/android_cpu.sql",
        "src/trace_processor/metrics/sql/android/android_cpu_agg.sql",
        "src/trace_processor/metrics/sql/android/android_cpu_raw_metrics_per_core.sql",
        "src/trace_processor/metrics/sql/android/android_dma_heap.sql",
        "src/trace_processor/metrics/sql/android/android_dvfs.sql",
        "src/trace_processor/metrics/sql/android/android_fastrpc.sql",
        "src/trace_processor/metrics/sql/android/android_gpu.sql",
        "src/trace_processor/metrics/sql/android/android_hwcomposer.sql",
        "src/trace_processor/metrics/sql/android/android_hwui_metric.sql",
        "src/trace_processor/metrics/sql/android/android_hwui_threads.sql",
        "src/trace_processor/metrics/sql/android/android_ion.sql",
        "src/trace_processor/metrics/sql/android/android_irq_runtime.sql",
        "src/trace_processor/metrics/sql/android/android_jank.sql",
        "src/trace_processor/metrics/sql/android/android_lmk.sql",
        "src/trace_processor/metrics/sql/android/android_lmk_reason.sql",
        "src/trace_processor/metrics/sql/android/android_mem.sql",
        "src/trace_processor/metrics/sql/android/android_mem_unagg.sql",
        "src/trace_processor/metrics/sql/android/android_multiuser.sql",
        "src/trace_processor/metrics/sql/android/android_multiuser_populator.sql",
        "src/trace_processor/metrics/sql/android/android_netperf.sql",
        "src/trace_processor/metrics/sql/android/android_package_list.sql",
        "src/trace_processor/metrics/sql/android/android_powrails.sql",
        "src/trace_processor/metrics/sql/android/android_proxy_power.sql",
        "src/trace_processor/metrics/sql/android/android_rt_runtime.sql",
        "src/trace_processor/metrics/sql/android/android_simpleperf.sql",
        "src/trace_processor/metrics/sql/android/android_startup.sql",
        "src/trace_processor/metrics/sql/android/android_surfaceflinger.sql",
        "src/trace_processor/metrics/sql/android/android_sysui_cuj.sql",
        "src/trace_processor/metrics/sql/android/android_sysui_cuj_jank_query.sql",
        "src/trace_processor/metrics/sql/android/android_task_names.sql",
        "src/trace_processor/metrics/sql/android/android_thread_time_in_state.sql",
        "src/trace_processor/metrics/sql/android/android_trace_quality.sql",
        "src/trace_processor/metrics/sql/android/composer_execution.sql",
        "src/trace_processor/metrics/sql/android/composition_layers.sql",
        "src/trace_processor/metrics/sql/android/cpu_info.sql",
        "src/trace_processor/metrics/sql/android/display_metrics.sql",
        "src/trace_processor/metrics/sql/android/frame_missed.sql",
        "src/trace_processor/metrics/sql/android/g2d.sql",
        "src/trace_processor/metrics/sql/android/g2d_duration.sql",
        "src/trace_processor/metrics/sql/android/global_counter_span_view.sql",
        "src/trace_processor/metrics/sql/android/gpu_counter_span_view.sql",
        "src/trace_processor/metrics/sql/android/java_heap_histogram.sql",
        "src/trace_processor/metrics/sql/android/java_heap_stats.sql",
        "src/trace_processor/metrics/sql/android/mem_stats_priority_breakdown.sql",
        "src/trace_processor/metrics/sql/android/power_drain_in_watts.sql",
        "src/trace_processor/metrics/sql/android/power_profile_data.sql",
        "src/trace_processor/metrics/sql/android/process_counter_span_view.sql",
        "src/trace_processor/metrics/sql/android/process_mem.sql",
        "src/trace_processor/metrics/sql/android/process_metadata.sql",
        "src/trace_processor/metrics/sql/android/process_oom_score.sql",
        "src/trace_processor/metrics/sql/android/process_unagg_mem_view.sql",
        "src/trace_processor/metrics/sql/android/profiler_smaps.sql",
        "src/trace_processor/metrics/sql/android/span_view_stats.sql",
        "src/trace_processor/metrics/sql/android/startup/hsc.sql",
        "src/trace_processor/metrics/sql/android/startup/launches.sql",
        "src/trace_processor/metrics/sql/android/startup/launches_maxsdk28.sql",
        "src/trace_processor/metrics/sql/android/startup/launches_minsdk29.sql",
        "src/trace_processor/metrics/sql/android/thread_counter_span_view.sql",
        "src/trace_processor/metrics/sql/android/unsymbolized_frames.sql",
        "src/trace_processor/metrics/sql/chrome/actual_power_by_category.sql",
        "src/trace_processor/metrics/sql/chrome/actual_power_by_rail_mode.sql",
        "src/trace_processor/metrics/sql/chrome/chrome_event_metadata.sql",
        "src/trace_processor/metrics/sql/chrome/chrome_processes.sql",
        "src/trace_processor/metrics/sql/chrome/chrome_thread_slice.sql",
        "src/trace_processor/metrics/sql/chrome/cpu_time_by_category.sql",
        "src/trace_processor/metrics/sql/chrome/cpu_time_by_rail_mode.sql",
        "src/trace_processor/metrics/sql/chrome/estimated_power_by_category.sql",
        "src/trace_processor/metrics/sql/chrome/estimated_power_by_rail_mode.sql",
        "src/trace_processor/metrics/sql/chrome/gesture_flow_event.sql",
        "src/trace_processor/metrics/sql/chrome/gesture_flow_event_queuing_delay.sql",
        "src/trace_processor/metrics/sql/chrome/gesture_jank.sql",
        "src/trace_processor/metrics/sql/chrome/jank_utilities.sql",
        "src/trace_processor/metrics/sql/chrome/rail_modes.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_flow_event.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_flow_event_queuing_delay.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_jank.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_jank_cause.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_jank_cause_blocking_task.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_jank_cause_blocking_touch_move.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_jank_cause_get_bitmap.sql",
        "src/trace_processor/metrics/sql/chrome/scroll_jank_cause_queuing_delay.sql",
        "src/trace_processor/metrics/sql/chrome/sufficient_chrome_processes.sql",
        "src/trace_processor/metrics/sql/chrome/test_chrome_metric.sql",
        "src/trace_processor/metrics/sql/chrome/touch_flow_event.sql",
        "src/trace_processor/metrics/sql/chrome/touch_flow_event_queuing_delay.sql",
        "src/trace_processor/metrics/sql/chrome/touch_jank.sql",
        "src/trace_processor/metrics/sql/experimental/blink_gc_metric.sql",
        "src/trace_processor/metrics/sql/experimental/chrome_dropped_frames.sql",
        "src/trace_processor/metrics/sql/experimental/frame_times.sql",
        "src/trace_processor/metrics/sql/experimental/media_metric.sql",
        "src/trace_processor/metrics/sql/experimental/reported_by_page.sql",
        "src/trace_processor/metrics/sql/trace_metadata.sql",
        "src/trace_processor/metrics/sql/trace_stats.sql",
        "src/trace_processor/metrics/sql/webview/webview_power_usage.sql",
    ],
    outs = [
        "src/trace_processor/metrics/sql/amalgamated_sql_metrics.h",
    ],
    cmd = "$(location gen_amalgamated_sql_metrics_py) --cpp_out=$@ $(SRCS)",
    exec_tools = [
        ":gen_amalgamated_sql_metrics_py",
    ],
)

perfetto_cc_proto_descriptor(
    name = "src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
    deps = [
        ":protos_perfetto_metrics_chrome_descriptor",
    ],
    outs = [
        "src/trace_processor/metrics/all_chrome_metrics.descriptor.h",
    ],
)

perfetto_cc_proto_descriptor(
    name = "src_trace_processor_metrics_gen_cc_metrics_descriptor",
    deps = [
        ":protos_perfetto_metrics_descriptor",
    ],
    outs = [
        "src/trace_processor/metrics/metrics.descriptor.h",
    ],
)

# GN target: //src/trace_processor/metrics:metrics
perfetto_filegroup(
    name = "src_trace_processor_metrics_metrics",
    srcs = [
        "src/trace_processor/metrics/metrics.cc",
        "src/trace_processor/metrics/metrics.h",
    ],
)

# GN target: //src/trace_processor/rpc:httpd
perfetto_filegroup(
    name = "src_trace_processor_rpc_httpd",
    srcs = [
        "src/trace_processor/rpc/httpd.cc",
        "src/trace_processor/rpc/httpd.h",
    ],
)

# GN target: //src/trace_processor/rpc:rpc
perfetto_filegroup(
    name = "src_trace_processor_rpc_rpc",
    srcs = [
        "src/trace_processor/rpc/query_result_serializer.cc",
        "src/trace_processor/rpc/query_result_serializer.h",
        "src/trace_processor/rpc/rpc.cc",
        "src/trace_processor/rpc/rpc.h",
    ],
)

# GN target: //src/trace_processor/sqlite:sqlite
perfetto_filegroup(
    name = "src_trace_processor_sqlite_sqlite",
    srcs = [
        "src/trace_processor/sqlite/create_function.cc",
        "src/trace_processor/sqlite/create_function.h",
        "src/trace_processor/sqlite/db_sqlite_table.cc",
        "src/trace_processor/sqlite/db_sqlite_table.h",
        "src/trace_processor/sqlite/query_cache.h",
        "src/trace_processor/sqlite/query_constraints.cc",
        "src/trace_processor/sqlite/query_constraints.h",
        "src/trace_processor/sqlite/register_function.cc",
        "src/trace_processor/sqlite/register_function.h",
        "src/trace_processor/sqlite/scoped_db.h",
        "src/trace_processor/sqlite/span_join_operator_table.cc",
        "src/trace_processor/sqlite/span_join_operator_table.h",
        "src/trace_processor/sqlite/sql_stats_table.cc",
        "src/trace_processor/sqlite/sql_stats_table.h",
        "src/trace_processor/sqlite/sqlite3_str_split.cc",
        "src/trace_processor/sqlite/sqlite3_str_split.h",
        "src/trace_processor/sqlite/sqlite_raw_table.cc",
        "src/trace_processor/sqlite/sqlite_raw_table.h",
        "src/trace_processor/sqlite/sqlite_table.cc",
        "src/trace_processor/sqlite/sqlite_table.h",
        "src/trace_processor/sqlite/sqlite_utils.h",
        "src/trace_processor/sqlite/stats_table.cc",
        "src/trace_processor/sqlite/stats_table.h",
        "src/trace_processor/sqlite/window_operator_table.cc",
        "src/trace_processor/sqlite/window_operator_table.h",
    ],
)

# GN target: //src/trace_processor/storage:storage
perfetto_filegroup(
    name = "src_trace_processor_storage_storage",
    srcs = [
        "src/trace_processor/storage/metadata.h",
        "src/trace_processor/storage/stats.h",
        "src/trace_processor/storage/trace_storage.cc",
        "src/trace_processor/storage/trace_storage.h",
    ],
)

# GN target: //src/trace_processor/tables:tables
perfetto_filegroup(
    name = "src_trace_processor_tables_tables",
    srcs = [
        "src/trace_processor/tables/android_tables.h",
        "src/trace_processor/tables/counter_tables.h",
        "src/trace_processor/tables/flow_tables.h",
        "src/trace_processor/tables/macros.h",
        "src/trace_processor/tables/macros_internal.h",
        "src/trace_processor/tables/memory_tables.h",
        "src/trace_processor/tables/metadata_tables.h",
        "src/trace_processor/tables/profiler_tables.h",
        "src/trace_processor/tables/slice_tables.h",
        "src/trace_processor/tables/table_destructors.cc",
        "src/trace_processor/tables/track_tables.h",
    ],
)

# GN target: //src/trace_processor/types:types
perfetto_filegroup(
    name = "src_trace_processor_types_types",
    srcs = [
        "src/trace_processor/types/destructible.cc",
        "src/trace_processor/types/destructible.h",
        "src/trace_processor/types/gfp_flags.cc",
        "src/trace_processor/types/gfp_flags.h",
        "src/trace_processor/types/softirq_action.h",
        "src/trace_processor/types/task_state.cc",
        "src/trace_processor/types/task_state.h",
        "src/trace_processor/types/trace_processor_context.h",
        "src/trace_processor/types/variadic.cc",
        "src/trace_processor/types/variadic.h",
        "src/trace_processor/types/version_number.h",
    ],
)

# GN target: //src/trace_processor/util:descriptors
perfetto_filegroup(
    name = "src_trace_processor_util_descriptors",
    srcs = [
        "src/trace_processor/util/descriptors.cc",
        "src/trace_processor/util/descriptors.h",
    ],
)

# GN target: //src/trace_processor/util:gzip
perfetto_filegroup(
    name = "src_trace_processor_util_gzip",
    srcs = [
        "src/trace_processor/util/gzip_utils.cc",
        "src/trace_processor/util/gzip_utils.h",
    ],
)

# GN target: //src/trace_processor/util:interned_message_view
perfetto_filegroup(
    name = "src_trace_processor_util_interned_message_view",
    srcs = [
        "src/trace_processor/util/interned_message_view.h",
    ],
)

# GN target: //src/trace_processor/util:proto_to_args_parser
perfetto_filegroup(
    name = "src_trace_processor_util_proto_to_args_parser",
    srcs = [
        "src/trace_processor/util/debug_annotation_parser.cc",
        "src/trace_processor/util/debug_annotation_parser.h",
        "src/trace_processor/util/proto_to_args_parser.cc",
        "src/trace_processor/util/proto_to_args_parser.h",
    ],
)

# GN target: //src/trace_processor/util:protozero_to_text
perfetto_filegroup(
    name = "src_trace_processor_util_protozero_to_text",
    srcs = [
        "src/trace_processor/util/protozero_to_text.cc",
        "src/trace_processor/util/protozero_to_text.h",
    ],
)

# GN target: //src/trace_processor/util:util
perfetto_filegroup(
    name = "src_trace_processor_util_util",
    srcs = [
        "src/trace_processor/util/status_macros.h",
    ],
)

# GN target: //src/trace_processor:export_json
perfetto_filegroup(
    name = "src_trace_processor_export_json",
    srcs = [
        "src/trace_processor/export_json.cc",
        "src/trace_processor/export_json.h",
    ],
)

# GN target: //src/trace_processor:ftrace_descriptors
perfetto_filegroup(
    name = "src_trace_processor_ftrace_descriptors",
    srcs = [
        "src/trace_processor/importers/ftrace/ftrace_descriptors.cc",
        "src/trace_processor/importers/ftrace/ftrace_descriptors.h",
    ],
)

# GN target: //src/trace_processor:lib
perfetto_filegroup(
    name = "src_trace_processor_lib",
    srcs = [
        "src/trace_processor/dynamic/ancestor_generator.cc",
        "src/trace_processor/dynamic/ancestor_generator.h",
        "src/trace_processor/dynamic/connected_flow_generator.cc",
        "src/trace_processor/dynamic/connected_flow_generator.h",
        "src/trace_processor/dynamic/descendant_generator.cc",
        "src/trace_processor/dynamic/descendant_generator.h",
        "src/trace_processor/dynamic/describe_slice_generator.cc",
        "src/trace_processor/dynamic/describe_slice_generator.h",
        "src/trace_processor/dynamic/experimental_annotated_stack_generator.cc",
        "src/trace_processor/dynamic/experimental_annotated_stack_generator.h",
        "src/trace_processor/dynamic/experimental_counter_dur_generator.cc",
        "src/trace_processor/dynamic/experimental_counter_dur_generator.h",
        "src/trace_processor/dynamic/experimental_flamegraph_generator.cc",
        "src/trace_processor/dynamic/experimental_flamegraph_generator.h",
        "src/trace_processor/dynamic/experimental_flat_slice_generator.cc",
        "src/trace_processor/dynamic/experimental_flat_slice_generator.h",
        "src/trace_processor/dynamic/experimental_sched_upid_generator.cc",
        "src/trace_processor/dynamic/experimental_sched_upid_generator.h",
        "src/trace_processor/dynamic/experimental_slice_layout_generator.cc",
        "src/trace_processor/dynamic/experimental_slice_layout_generator.h",
        "src/trace_processor/dynamic/thread_state_generator.cc",
        "src/trace_processor/dynamic/thread_state_generator.h",
        "src/trace_processor/iterator_impl.cc",
        "src/trace_processor/iterator_impl.h",
        "src/trace_processor/read_trace.cc",
        "src/trace_processor/trace_processor.cc",
        "src/trace_processor/trace_processor_impl.cc",
        "src/trace_processor/trace_processor_impl.h",
    ],
)

# GN target: //src/trace_processor:metatrace
perfetto_filegroup(
    name = "src_trace_processor_metatrace",
    srcs = [
        "src/trace_processor/tp_metatrace.cc",
        "src/trace_processor/tp_metatrace.h",
    ],
)

# GN target: //src/trace_processor:storage_full
perfetto_filegroup(
    name = "src_trace_processor_storage_full",
    srcs = [
        "src/trace_processor/importers/additional_modules.cc",
        "src/trace_processor/importers/additional_modules.h",
        "src/trace_processor/importers/ftrace/binder_tracker.cc",
        "src/trace_processor/importers/ftrace/binder_tracker.h",
        "src/trace_processor/importers/ftrace/ftrace_module_impl.cc",
        "src/trace_processor/importers/ftrace/ftrace_module_impl.h",
        "src/trace_processor/importers/ftrace/ftrace_parser.cc",
        "src/trace_processor/importers/ftrace/ftrace_parser.h",
        "src/trace_processor/importers/ftrace/ftrace_tokenizer.cc",
        "src/trace_processor/importers/ftrace/ftrace_tokenizer.h",
        "src/trace_processor/importers/ftrace/rss_stat_tracker.cc",
        "src/trace_processor/importers/ftrace/rss_stat_tracker.h",
        "src/trace_processor/importers/ftrace/sched_event_tracker.cc",
        "src/trace_processor/importers/ftrace/sched_event_tracker.h",
        "src/trace_processor/importers/fuchsia/fuchsia_record.cc",
        "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.cc",
        "src/trace_processor/importers/fuchsia/fuchsia_trace_parser.h",
        "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.cc",
        "src/trace_processor/importers/fuchsia/fuchsia_trace_tokenizer.h",
        "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.cc",
        "src/trace_processor/importers/gzip/gzip_trace_parser.cc",
        "src/trace_processor/importers/gzip/gzip_trace_parser.h",
        "src/trace_processor/importers/json/json_trace_parser.cc",
        "src/trace_processor/importers/json/json_trace_parser.h",
        "src/trace_processor/importers/json/json_trace_tokenizer.cc",
        "src/trace_processor/importers/json/json_trace_tokenizer.h",
        "src/trace_processor/importers/proto/android_probes_module.cc",
        "src/trace_processor/importers/proto/android_probes_module.h",
        "src/trace_processor/importers/proto/android_probes_parser.cc",
        "src/trace_processor/importers/proto/android_probes_parser.h",
        "src/trace_processor/importers/proto/android_probes_tracker.cc",
        "src/trace_processor/importers/proto/android_probes_tracker.h",
        "src/trace_processor/importers/proto/frame_timeline_event_parser.cc",
        "src/trace_processor/importers/proto/frame_timeline_event_parser.h",
        "src/trace_processor/importers/proto/gpu_event_parser.cc",
        "src/trace_processor/importers/proto/gpu_event_parser.h",
        "src/trace_processor/importers/proto/graphics_event_module.cc",
        "src/trace_processor/importers/proto/graphics_event_module.h",
        "src/trace_processor/importers/proto/graphics_frame_event_parser.cc",
        "src/trace_processor/importers/proto/graphics_frame_event_parser.h",
        "src/trace_processor/importers/proto/heap_graph_module.cc",
        "src/trace_processor/importers/proto/heap_graph_module.h",
        "src/trace_processor/importers/proto/heap_graph_tracker.cc",
        "src/trace_processor/importers/proto/heap_graph_tracker.h",
        "src/trace_processor/importers/proto/system_probes_module.cc",
        "src/trace_processor/importers/proto/system_probes_module.h",
        "src/trace_processor/importers/proto/system_probes_parser.cc",
        "src/trace_processor/importers/proto/system_probes_parser.h",
        "src/trace_processor/importers/proto/vulkan_memory_tracker.cc",
        "src/trace_processor/importers/proto/vulkan_memory_tracker.h",
        "src/trace_processor/importers/syscalls/syscall_tracker.cc",
        "src/trace_processor/importers/syscalls/syscalls_aarch32.h",
        "src/trace_processor/importers/syscalls/syscalls_aarch64.h",
        "src/trace_processor/importers/syscalls/syscalls_armeabi.h",
        "src/trace_processor/importers/syscalls/syscalls_x86.h",
        "src/trace_processor/importers/syscalls/syscalls_x86_64.h",
        "src/trace_processor/importers/systrace/systrace_line_parser.cc",
        "src/trace_processor/importers/systrace/systrace_line_parser.h",
        "src/trace_processor/importers/systrace/systrace_line_tokenizer.cc",
        "src/trace_processor/importers/systrace/systrace_line_tokenizer.h",
        "src/trace_processor/importers/systrace/systrace_parser.cc",
        "src/trace_processor/importers/systrace/systrace_parser.h",
        "src/trace_processor/importers/systrace/systrace_trace_parser.cc",
        "src/trace_processor/importers/systrace/systrace_trace_parser.h",
    ],
)

# GN target: //src/trace_processor:storage_minimal
perfetto_filegroup(
    name = "src_trace_processor_storage_minimal",
    srcs = [
        "src/trace_processor/forwarding_trace_parser.cc",
        "src/trace_processor/forwarding_trace_parser.h",
        "src/trace_processor/importers/default_modules.cc",
        "src/trace_processor/importers/default_modules.h",
        "src/trace_processor/importers/ftrace/ftrace_module.cc",
        "src/trace_processor/importers/ftrace/ftrace_module.h",
        "src/trace_processor/importers/fuchsia/fuchsia_record.h",
        "src/trace_processor/importers/fuchsia/fuchsia_trace_utils.h",
        "src/trace_processor/importers/json/json_utils.cc",
        "src/trace_processor/importers/json/json_utils.h",
        "src/trace_processor/importers/ninja/ninja_log_parser.cc",
        "src/trace_processor/importers/ninja/ninja_log_parser.h",
        "src/trace_processor/importers/proto/async_track_set_tracker.cc",
        "src/trace_processor/importers/proto/async_track_set_tracker.h",
        "src/trace_processor/importers/proto/chrome_string_lookup.cc",
        "src/trace_processor/importers/proto/chrome_string_lookup.h",
        "src/trace_processor/importers/proto/chrome_system_probes_module.cc",
        "src/trace_processor/importers/proto/chrome_system_probes_module.h",
        "src/trace_processor/importers/proto/chrome_system_probes_parser.cc",
        "src/trace_processor/importers/proto/chrome_system_probes_parser.h",
        "src/trace_processor/importers/proto/flamegraph_construction_algorithms.cc",
        "src/trace_processor/importers/proto/flamegraph_construction_algorithms.h",
        "src/trace_processor/importers/proto/heap_profile_tracker.cc",
        "src/trace_processor/importers/proto/heap_profile_tracker.h",
        "src/trace_processor/importers/proto/memory_tracker_snapshot_module.cc",
        "src/trace_processor/importers/proto/memory_tracker_snapshot_module.h",
        "src/trace_processor/importers/proto/memory_tracker_snapshot_parser.cc",
        "src/trace_processor/importers/proto/memory_tracker_snapshot_parser.h",
        "src/trace_processor/importers/proto/metadata_module.cc",
        "src/trace_processor/importers/proto/metadata_module.h",
        "src/trace_processor/importers/proto/metadata_tracker.cc",
        "src/trace_processor/importers/proto/metadata_tracker.h",
        "src/trace_processor/importers/proto/packet_sequence_state.cc",
        "src/trace_processor/importers/proto/packet_sequence_state.h",
        "src/trace_processor/importers/proto/perf_sample_tracker.cc",
        "src/trace_processor/importers/proto/perf_sample_tracker.h",
        "src/trace_processor/importers/proto/profile_module.cc",
        "src/trace_processor/importers/proto/profile_module.h",
        "src/trace_processor/importers/proto/profile_packet_utils.cc",
        "src/trace_processor/importers/proto/profile_packet_utils.h",
        "src/trace_processor/importers/proto/profiler_util.cc",
        "src/trace_processor/importers/proto/profiler_util.h",
        "src/trace_processor/importers/proto/proto_importer_module.cc",
        "src/trace_processor/importers/proto/proto_importer_module.h",
        "src/trace_processor/importers/proto/proto_incremental_state.h",
        "src/trace_processor/importers/proto/proto_trace_parser.cc",
        "src/trace_processor/importers/proto/proto_trace_parser.h",
        "src/trace_processor/importers/proto/proto_trace_reader.cc",
        "src/trace_processor/importers/proto/proto_trace_reader.h",
        "src/trace_processor/importers/proto/proto_trace_tokenizer.cc",
        "src/trace_processor/importers/proto/proto_trace_tokenizer.h",
        "src/trace_processor/importers/proto/stack_profile_tracker.cc",
        "src/trace_processor/importers/proto/stack_profile_tracker.h",
        "src/trace_processor/importers/proto/track_event_module.cc",
        "src/trace_processor/importers/proto/track_event_module.h",
        "src/trace_processor/importers/proto/track_event_parser.cc",
        "src/trace_processor/importers/proto/track_event_parser.h",
        "src/trace_processor/importers/proto/track_event_tokenizer.cc",
        "src/trace_processor/importers/proto/track_event_tokenizer.h",
        "src/trace_processor/importers/proto/track_event_tracker.cc",
        "src/trace_processor/importers/proto/track_event_tracker.h",
        "src/trace_processor/importers/syscalls/syscall_tracker.h",
        "src/trace_processor/importers/systrace/systrace_line.h",
        "src/trace_processor/timestamped_trace_piece.h",
        "src/trace_processor/trace_blob.cc",
        "src/trace_processor/trace_processor_context.cc",
        "src/trace_processor/trace_processor_storage.cc",
        "src/trace_processor/trace_processor_storage_impl.cc",
        "src/trace_processor/trace_processor_storage_impl.h",
        "src/trace_processor/trace_sorter.cc",
        "src/trace_processor/trace_sorter.h",
        "src/trace_processor/virtual_destructors.cc",
    ],
)

# GN target: //src/traced/probes/android_log:android_log
perfetto_filegroup(
    name = "src_traced_probes_android_log_android_log",
    srcs = [
        "src/traced/probes/android_log/android_log_data_source.cc",
        "src/traced/probes/android_log/android_log_data_source.h",
    ],
)

# GN target: //src/traced/probes/common:common
perfetto_filegroup(
    name = "src_traced_probes_common_common",
    srcs = [
        "src/traced/probes/common/cpu_freq_info.cc",
        "src/traced/probes/common/cpu_freq_info.h",
    ],
)

# GN target: //src/traced/probes/filesystem:filesystem
perfetto_filegroup(
    name = "src_traced_probes_filesystem_filesystem",
    srcs = [
        "src/traced/probes/filesystem/file_scanner.cc",
        "src/traced/probes/filesystem/file_scanner.h",
        "src/traced/probes/filesystem/fs_mount.cc",
        "src/traced/probes/filesystem/fs_mount.h",
        "src/traced/probes/filesystem/inode_file_data_source.cc",
        "src/traced/probes/filesystem/inode_file_data_source.h",
        "src/traced/probes/filesystem/lru_inode_cache.cc",
        "src/traced/probes/filesystem/lru_inode_cache.h",
        "src/traced/probes/filesystem/prefix_finder.cc",
        "src/traced/probes/filesystem/prefix_finder.h",
        "src/traced/probes/filesystem/range_tree.cc",
        "src/traced/probes/filesystem/range_tree.h",
    ],
)

# GN target: //src/traced/probes/ftrace/format_parser:format_parser
perfetto_filegroup(
    name = "src_traced_probes_ftrace_format_parser_format_parser",
    srcs = [
        "src/traced/probes/ftrace/format_parser/format_parser.cc",
        "src/traced/probes/ftrace/format_parser/format_parser.h",
    ],
)

# GN target: //src/traced/probes/ftrace:ftrace
perfetto_filegroup(
    name = "src_traced_probes_ftrace_ftrace",
    srcs = [
        "src/traced/probes/ftrace/atrace_hal_wrapper.cc",
        "src/traced/probes/ftrace/atrace_hal_wrapper.h",
        "src/traced/probes/ftrace/atrace_wrapper.cc",
        "src/traced/probes/ftrace/atrace_wrapper.h",
        "src/traced/probes/ftrace/compact_sched.cc",
        "src/traced/probes/ftrace/compact_sched.h",
        "src/traced/probes/ftrace/cpu_reader.cc",
        "src/traced/probes/ftrace/cpu_reader.h",
        "src/traced/probes/ftrace/cpu_stats_parser.cc",
        "src/traced/probes/ftrace/cpu_stats_parser.h",
        "src/traced/probes/ftrace/discover_vendor_tracepoints.cc",
        "src/traced/probes/ftrace/discover_vendor_tracepoints.h",
        "src/traced/probes/ftrace/event_info.cc",
        "src/traced/probes/ftrace/event_info.h",
        "src/traced/probes/ftrace/event_info_constants.cc",
        "src/traced/probes/ftrace/event_info_constants.h",
        "src/traced/probes/ftrace/ftrace_config_muxer.cc",
        "src/traced/probes/ftrace/ftrace_config_muxer.h",
        "src/traced/probes/ftrace/ftrace_config_utils.cc",
        "src/traced/probes/ftrace/ftrace_config_utils.h",
        "src/traced/probes/ftrace/ftrace_controller.cc",
        "src/traced/probes/ftrace/ftrace_controller.h",
        "src/traced/probes/ftrace/ftrace_data_source.cc",
        "src/traced/probes/ftrace/ftrace_data_source.h",
        "src/traced/probes/ftrace/ftrace_metadata.h",
        "src/traced/probes/ftrace/ftrace_stats.cc",
        "src/traced/probes/ftrace/ftrace_stats.h",
        "src/traced/probes/ftrace/printk_formats_parser.cc",
        "src/traced/probes/ftrace/printk_formats_parser.h",
        "src/traced/probes/ftrace/proto_translation_table.cc",
        "src/traced/probes/ftrace/proto_translation_table.h",
    ],
)

# GN target: //src/traced/probes/ftrace:ftrace_procfs
perfetto_filegroup(
    name = "src_traced_probes_ftrace_ftrace_procfs",
    srcs = [
        "src/traced/probes/ftrace/ftrace_procfs.cc",
        "src/traced/probes/ftrace/ftrace_procfs.h",
    ],
)

# GN target: //src/traced/probes/initial_display_state:initial_display_state
perfetto_filegroup(
    name = "src_traced_probes_initial_display_state_initial_display_state",
    srcs = [
        "src/traced/probes/initial_display_state/initial_display_state_data_source.cc",
        "src/traced/probes/initial_display_state/initial_display_state_data_source.h",
    ],
)

# GN target: //src/traced/probes/metatrace:metatrace
perfetto_filegroup(
    name = "src_traced_probes_metatrace_metatrace",
    srcs = [
        "src/traced/probes/metatrace/metatrace_data_source.cc",
        "src/traced/probes/metatrace/metatrace_data_source.h",
    ],
)

# GN target: //src/traced/probes/packages_list:packages_list
perfetto_filegroup(
    name = "src_traced_probes_packages_list_packages_list",
    srcs = [
        "src/traced/probes/packages_list/packages_list_data_source.cc",
        "src/traced/probes/packages_list/packages_list_data_source.h",
    ],
)

# GN target: //src/traced/probes/packages_list:packages_list_parser
perfetto_filegroup(
    name = "src_traced_probes_packages_list_packages_list_parser",
    srcs = [
        "src/traced/probes/packages_list/packages_list_parser.cc",
        "src/traced/probes/packages_list/packages_list_parser.h",
    ],
)

# GN target: //src/traced/probes/power:power
perfetto_filegroup(
    name = "src_traced_probes_power_power",
    srcs = [
        "src/traced/probes/power/android_power_data_source.cc",
        "src/traced/probes/power/android_power_data_source.h",
        "src/traced/probes/power/linux_power_sysfs_data_source.cc",
        "src/traced/probes/power/linux_power_sysfs_data_source.h",
    ],
)

# GN target: //src/traced/probes/ps:ps
perfetto_filegroup(
    name = "src_traced_probes_ps_ps",
    srcs = [
        "src/traced/probes/ps/process_stats_data_source.cc",
        "src/traced/probes/ps/process_stats_data_source.h",
    ],
)

# GN target: //src/traced/probes/sys_stats:sys_stats
perfetto_filegroup(
    name = "src_traced_probes_sys_stats_sys_stats",
    srcs = [
        "src/traced/probes/sys_stats/sys_stats_data_source.cc",
        "src/traced/probes/sys_stats/sys_stats_data_source.h",
    ],
)

# GN target: //src/traced/probes/system_info:system_info
perfetto_filegroup(
    name = "src_traced_probes_system_info_system_info",
    srcs = [
        "src/traced/probes/system_info/system_info_data_source.cc",
        "src/traced/probes/system_info/system_info_data_source.h",
    ],
)

# GN target: //src/traced/probes:data_source
perfetto_filegroup(
    name = "src_traced_probes_data_source",
    srcs = [
        "src/traced/probes/probes_data_source.cc",
        "src/traced/probes/probes_data_source.h",
    ],
)

# GN target: //src/traced/probes:probes
perfetto_filegroup(
    name = "src_traced_probes_probes",
    srcs = [
        "src/traced/probes/probes.cc",
    ],
)

# GN target: //src/traced/probes:probes_src
perfetto_filegroup(
    name = "src_traced_probes_probes_src",
    srcs = [
        "src/traced/probes/kmem_activity_trigger.cc",
        "src/traced/probes/kmem_activity_trigger.h",
        "src/traced/probes/probes_producer.cc",
        "src/traced/probes/probes_producer.h",
    ],
)

# GN target: //src/traced/service:service
perfetto_filegroup(
    name = "src_traced_service_service",
    srcs = [
        "src/traced/service/builtin_producer.cc",
        "src/traced/service/builtin_producer.h",
        "src/traced/service/service.cc",
    ],
)

# GN target: //src/tracing/consumer_api_deprecated:consumer_api_deprecated
perfetto_filegroup(
    name = "src_tracing_consumer_api_deprecated_consumer_api_deprecated",
    srcs = [
        "src/tracing/consumer_api_deprecated/consumer_api_deprecated.cc",
    ],
)

# GN target: //src/tracing/core:core
perfetto_filegroup(
    name = "src_tracing_core_core",
    srcs = [
        "src/tracing/core/id_allocator.cc",
        "src/tracing/core/id_allocator.h",
        "src/tracing/core/null_trace_writer.cc",
        "src/tracing/core/null_trace_writer.h",
        "src/tracing/core/patch_list.h",
        "src/tracing/core/shared_memory_abi.cc",
        "src/tracing/core/shared_memory_arbiter_impl.cc",
        "src/tracing/core/shared_memory_arbiter_impl.h",
        "src/tracing/core/trace_packet.cc",
        "src/tracing/core/trace_writer_impl.cc",
        "src/tracing/core/trace_writer_impl.h",
        "src/tracing/core/virtual_destructors.cc",
    ],
)

# GN target: //src/tracing/core:service
perfetto_filegroup(
    name = "src_tracing_core_service",
    srcs = [
        "src/tracing/core/metatrace_writer.cc",
        "src/tracing/core/metatrace_writer.h",
        "src/tracing/core/packet_stream_validator.cc",
        "src/tracing/core/packet_stream_validator.h",
        "src/tracing/core/trace_buffer.cc",
        "src/tracing/core/trace_buffer.h",
        "src/tracing/core/tracing_service_impl.cc",
        "src/tracing/core/tracing_service_impl.h",
    ],
)

# GN target: //src/tracing/ipc/consumer:consumer
perfetto_filegroup(
    name = "src_tracing_ipc_consumer_consumer",
    srcs = [
        "src/tracing/ipc/consumer/consumer_ipc_client_impl.cc",
        "src/tracing/ipc/consumer/consumer_ipc_client_impl.h",
    ],
)

# GN target: //src/tracing/ipc/producer:producer
perfetto_filegroup(
    name = "src_tracing_ipc_producer_producer",
    srcs = [
        "src/tracing/ipc/producer/producer_ipc_client_impl.cc",
        "src/tracing/ipc/producer/producer_ipc_client_impl.h",
    ],
)

# GN target: //src/tracing/ipc/service:service
perfetto_filegroup(
    name = "src_tracing_ipc_service_service",
    srcs = [
        "src/tracing/ipc/service/consumer_ipc_service.cc",
        "src/tracing/ipc/service/consumer_ipc_service.h",
        "src/tracing/ipc/service/producer_ipc_service.cc",
        "src/tracing/ipc/service/producer_ipc_service.h",
        "src/tracing/ipc/service/service_ipc_host_impl.cc",
        "src/tracing/ipc/service/service_ipc_host_impl.h",
    ],
)

# GN target: //src/tracing/ipc:common
perfetto_filegroup(
    name = "src_tracing_ipc_common",
    srcs = [
        "src/tracing/ipc/memfd.cc",
        "src/tracing/ipc/memfd.h",
        "src/tracing/ipc/posix_shared_memory.cc",
        "src/tracing/ipc/posix_shared_memory.h",
        "src/tracing/ipc/shared_memory_windows.cc",
        "src/tracing/ipc/shared_memory_windows.h",
    ],
)

# GN target: //src/tracing/ipc:default_socket
perfetto_filegroup(
    name = "src_tracing_ipc_default_socket",
    srcs = [
        "src/tracing/ipc/default_socket.cc",
    ],
)

# GN target: //src/tracing:client_api_without_backends
perfetto_filegroup(
    name = "src_tracing_client_api_without_backends",
    srcs = [
        "src/tracing/console_interceptor.cc",
        "src/tracing/data_source.cc",
        "src/tracing/debug_annotation.cc",
        "src/tracing/event_context.cc",
        "src/tracing/interceptor.cc",
        "src/tracing/internal/checked_scope.cc",
        "src/tracing/internal/interceptor_trace_writer.cc",
        "src/tracing/internal/tracing_backend_fake.cc",
        "src/tracing/internal/tracing_muxer_fake.cc",
        "src/tracing/internal/tracing_muxer_fake.h",
        "src/tracing/internal/tracing_muxer_impl.cc",
        "src/tracing/internal/tracing_muxer_impl.h",
        "src/tracing/internal/track_event_internal.cc",
        "src/tracing/internal/track_event_interned_fields.cc",
        "src/tracing/platform.cc",
        "src/tracing/traced_value.cc",
        "src/tracing/tracing.cc",
        "src/tracing/tracing_policy.cc",
        "src/tracing/track.cc",
        "src/tracing/track_event_category_registry.cc",
        "src/tracing/track_event_legacy.cc",
        "src/tracing/track_event_state_tracker.cc",
        "src/tracing/virtual_destructors.cc",
    ],
)

# GN target: //src/tracing:common
perfetto_filegroup(
    name = "src_tracing_common",
    srcs = [
        "src/tracing/trace_writer_base.cc",
    ],
)

# GN target: //src/tracing:in_process_backend
perfetto_filegroup(
    name = "src_tracing_in_process_backend",
    srcs = [
        "src/tracing/internal/in_process_tracing_backend.cc",
    ],
)

# GN target: //src/tracing:platform_impl
perfetto_filegroup(
    name = "src_tracing_platform_impl",
    srcs = [
        "src/tracing/platform_posix.cc",
        "src/tracing/platform_windows.cc",
    ],
)

# GN target: //src/tracing:system_backend
perfetto_filegroup(
    name = "src_tracing_system_backend",
    srcs = [
        "src/tracing/internal/system_tracing_backend.cc",
    ],
)

# GN target: //tools/trace_to_text:common
perfetto_filegroup(
    name = "tools_trace_to_text_common",
    srcs = [
        "tools/trace_to_text/deobfuscate_profile.cc",
        "tools/trace_to_text/deobfuscate_profile.h",
        "tools/trace_to_text/main.cc",
        "tools/trace_to_text/symbolize_profile.cc",
        "tools/trace_to_text/symbolize_profile.h",
        "tools/trace_to_text/trace_to_hprof.cc",
        "tools/trace_to_text/trace_to_hprof.h",
        "tools/trace_to_text/trace_to_json.cc",
        "tools/trace_to_text/trace_to_json.h",
        "tools/trace_to_text/trace_to_profile.cc",
        "tools/trace_to_text/trace_to_profile.h",
        "tools/trace_to_text/trace_to_systrace.cc",
        "tools/trace_to_text/trace_to_systrace.h",
        "tools/trace_to_text/trace_to_text.h",
    ],
)

# GN target: //tools/trace_to_text:full
perfetto_filegroup(
    name = "tools_trace_to_text_full",
    srcs = [
        "tools/trace_to_text/proto_full_utils.cc",
        "tools/trace_to_text/proto_full_utils.h",
        "tools/trace_to_text/trace_to_text.cc",
    ],
)

perfetto_cc_proto_descriptor(
    name = "tools_trace_to_text_gen_cc_trace_descriptor",
    deps = [
        ":protos_perfetto_trace_descriptor",
    ],
    outs = [
        "tools/trace_to_text/trace.descriptor.h",
    ],
)

# GN target: //tools/trace_to_text:pprofbuilder
perfetto_filegroup(
    name = "tools_trace_to_text_pprofbuilder",
    srcs = [
        "tools/trace_to_text/pprof_builder.cc",
    ],
)

# GN target: //tools/trace_to_text:utils
perfetto_filegroup(
    name = "tools_trace_to_text_utils",
    srcs = [
        "tools/trace_to_text/utils.cc",
        "tools/trace_to_text/utils.h",
    ],
)

# ##############################################################################
# Proto libraries
# ##############################################################################

# GN target: //protos/perfetto/common:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_common_cpp",
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/common:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_common_lite",
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/common:zero
perfetto_proto_library(
    name = "protos_perfetto_common_protos",
    srcs = [
        "protos/perfetto/common/android_energy_consumer_descriptor.proto",
        "protos/perfetto/common/android_log_constants.proto",
        "protos/perfetto/common/builtin_clock.proto",
        "protos/perfetto/common/commit_data_request.proto",
        "protos/perfetto/common/data_source_descriptor.proto",
        "protos/perfetto/common/descriptor.proto",
        "protos/perfetto/common/gpu_counter_descriptor.proto",
        "protos/perfetto/common/interceptor_descriptor.proto",
        "protos/perfetto/common/observable_events.proto",
        "protos/perfetto/common/perf_events.proto",
        "protos/perfetto/common/sys_stats_counters.proto",
        "protos/perfetto/common/trace_stats.proto",
        "protos/perfetto/common/tracing_service_capabilities.proto",
        "protos/perfetto/common/tracing_service_state.proto",
        "protos/perfetto/common/track_event_descriptor.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/common:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_common_zero",
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/config/android:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_android_cpp",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_android_protos",
    ],
)

# GN target: //protos/perfetto/config/android:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_android_lite",
    deps = [
        ":protos_perfetto_config_android_protos",
    ],
)

# GN target: //protos/perfetto/config/android:zero
perfetto_proto_library(
    name = "protos_perfetto_config_android_protos",
    srcs = [
        "protos/perfetto/config/android/android_log_config.proto",
        "protos/perfetto/config/android/android_polled_state_config.proto",
        "protos/perfetto/config/android/packages_list_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/config/android:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_android_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_protos",
    ],
)

# GN target: //protos/perfetto/config:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_cpp",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_android_cpp",
        ":protos_perfetto_config_ftrace_cpp",
        ":protos_perfetto_config_gpu_cpp",
        ":protos_perfetto_config_inode_file_cpp",
        ":protos_perfetto_config_interceptors_cpp",
        ":protos_perfetto_config_power_cpp",
        ":protos_perfetto_config_process_stats_cpp",
        ":protos_perfetto_config_profiling_cpp",
        ":protos_perfetto_config_protos",
        ":protos_perfetto_config_sys_stats_cpp",
        ":protos_perfetto_config_track_event_cpp",
    ],
)

# GN target: //protos/perfetto/config:descriptor
perfetto_proto_descriptor(
    name = "protos_perfetto_config_descriptor",
    deps = [
        ":protos_perfetto_config_protos",
    ],
    outs = [
        "protos_perfetto_config_descriptor.bin",
    ],
)

# GN target: //protos/perfetto/config/ftrace:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_ftrace_cpp",
    deps = [
        ":protos_perfetto_config_ftrace_protos",
    ],
)

# GN target: //protos/perfetto/config/ftrace:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_ftrace_lite",
    deps = [
        ":protos_perfetto_config_ftrace_protos",
    ],
)

# GN target: //protos/perfetto/config/ftrace:zero
perfetto_proto_library(
    name = "protos_perfetto_config_ftrace_protos",
    srcs = [
        "protos/perfetto/config/ftrace/ftrace_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/ftrace:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_ftrace_zero",
    deps = [
        ":protos_perfetto_config_ftrace_protos",
    ],
)

# GN target: //protos/perfetto/config/gpu:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_gpu_cpp",
    deps = [
        ":protos_perfetto_config_gpu_protos",
    ],
)

# GN target: //protos/perfetto/config/gpu:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_gpu_lite",
    deps = [
        ":protos_perfetto_config_gpu_protos",
    ],
)

# GN target: //protos/perfetto/config/gpu:zero
perfetto_proto_library(
    name = "protos_perfetto_config_gpu_protos",
    srcs = [
        "protos/perfetto/config/gpu/gpu_counter_config.proto",
        "protos/perfetto/config/gpu/vulkan_memory_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/gpu:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_gpu_zero",
    deps = [
        ":protos_perfetto_config_gpu_protos",
    ],
)

# GN target: //protos/perfetto/config/inode_file:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_inode_file_cpp",
    deps = [
        ":protos_perfetto_config_inode_file_protos",
    ],
)

# GN target: //protos/perfetto/config/inode_file:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_inode_file_lite",
    deps = [
        ":protos_perfetto_config_inode_file_protos",
    ],
)

# GN target: //protos/perfetto/config/inode_file:zero
perfetto_proto_library(
    name = "protos_perfetto_config_inode_file_protos",
    srcs = [
        "protos/perfetto/config/inode_file/inode_file_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/inode_file:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_inode_file_zero",
    deps = [
        ":protos_perfetto_config_inode_file_protos",
    ],
)

# GN target: //protos/perfetto/config/interceptors:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_interceptors_cpp",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_interceptors_protos",
    ],
)

# GN target: //protos/perfetto/config/interceptors:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_interceptors_lite",
    deps = [
        ":protos_perfetto_config_interceptors_protos",
    ],
)

# GN target: //protos/perfetto/config/interceptors:zero
perfetto_proto_library(
    name = "protos_perfetto_config_interceptors_protos",
    srcs = [
        "protos/perfetto/config/interceptors/console_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/config/interceptors:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_interceptors_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_interceptors_protos",
    ],
)

# GN target: //protos/perfetto/config:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_lite",
    deps = [
        ":protos_perfetto_config_protos",
    ],
)

# GN target: //protos/perfetto/config:merged_config
perfetto_cc_proto_library(
    name = "protos_perfetto_config_merged_config",
    deps = [
        ":protos_perfetto_config_merged_config_protos",
    ],
)

# GN target: //protos/perfetto/config:merged_config
perfetto_proto_library(
    name = "protos_perfetto_config_merged_config_protos",
    srcs = [
        "protos/perfetto/config/perfetto_config.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
)

# GN target: //protos/perfetto/config:perfetto_config_descriptor
perfetto_proto_descriptor(
    name = "protos_perfetto_config_perfetto_config_descriptor",
    deps = [
        ":protos_perfetto_config_perfetto_config_protos",
    ],
    outs = [
        "protos_perfetto_config_perfetto_config_descriptor.bin",
    ],
)

# GN target: //protos/perfetto/config:perfetto_config_descriptor
perfetto_proto_library(
    name = "protos_perfetto_config_perfetto_config_protos",
    srcs = [
        "protos/perfetto/config/perfetto_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/power:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_power_cpp",
    deps = [
        ":protos_perfetto_config_power_protos",
    ],
)

# GN target: //protos/perfetto/config/power:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_power_lite",
    deps = [
        ":protos_perfetto_config_power_protos",
    ],
)

# GN target: //protos/perfetto/config/power:zero
perfetto_proto_library(
    name = "protos_perfetto_config_power_protos",
    srcs = [
        "protos/perfetto/config/power/android_power_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/power:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_power_zero",
    deps = [
        ":protos_perfetto_config_power_protos",
    ],
)

# GN target: //protos/perfetto/config/process_stats:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_process_stats_cpp",
    deps = [
        ":protos_perfetto_config_process_stats_protos",
    ],
)

# GN target: //protos/perfetto/config/process_stats:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_process_stats_lite",
    deps = [
        ":protos_perfetto_config_process_stats_protos",
    ],
)

# GN target: //protos/perfetto/config/process_stats:zero
perfetto_proto_library(
    name = "protos_perfetto_config_process_stats_protos",
    srcs = [
        "protos/perfetto/config/process_stats/process_stats_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/process_stats:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_process_stats_zero",
    deps = [
        ":protos_perfetto_config_process_stats_protos",
    ],
)

# GN target: //protos/perfetto/config/profiling:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_profiling_cpp",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_profiling_protos",
    ],
)

# GN target: //protos/perfetto/config/profiling:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_profiling_lite",
    deps = [
        ":protos_perfetto_config_profiling_protos",
    ],
)

# GN target: //protos/perfetto/config/profiling:zero
perfetto_proto_library(
    name = "protos_perfetto_config_profiling_protos",
    srcs = [
        "protos/perfetto/config/profiling/heapprofd_config.proto",
        "protos/perfetto/config/profiling/java_hprof_config.proto",
        "protos/perfetto/config/profiling/perf_event_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/config/profiling:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_profiling_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_profiling_protos",
    ],
)

# GN target: //protos/perfetto/config:zero
perfetto_proto_library(
    name = "protos_perfetto_config_protos",
    srcs = [
        "protos/perfetto/config/chrome/chrome_config.proto",
        "protos/perfetto/config/data_source_config.proto",
        "protos/perfetto/config/interceptor_config.proto",
        "protos/perfetto/config/stress_test_config.proto",
        "protos/perfetto/config/test_config.proto",
        "protos/perfetto/config/trace_config.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
    deps = [
        ":protos_perfetto_common_protos",
        ":protos_perfetto_config_android_protos",
        ":protos_perfetto_config_ftrace_protos",
        ":protos_perfetto_config_gpu_protos",
        ":protos_perfetto_config_inode_file_protos",
        ":protos_perfetto_config_interceptors_protos",
        ":protos_perfetto_config_power_protos",
        ":protos_perfetto_config_process_stats_protos",
        ":protos_perfetto_config_profiling_protos",
        ":protos_perfetto_config_sys_stats_protos",
        ":protos_perfetto_config_track_event_protos",
    ],
)

# GN target: //protos/perfetto/config/sys_stats:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_sys_stats_cpp",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_sys_stats_protos",
    ],
)

# GN target: //protos/perfetto/config/sys_stats:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_sys_stats_lite",
    deps = [
        ":protos_perfetto_config_sys_stats_protos",
    ],
)

# GN target: //protos/perfetto/config/sys_stats:zero
perfetto_proto_library(
    name = "protos_perfetto_config_sys_stats_protos",
    srcs = [
        "protos/perfetto/config/sys_stats/sys_stats_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/config/sys_stats:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_sys_stats_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_sys_stats_protos",
    ],
)

# GN target: //protos/perfetto/config/track_event:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_config_track_event_cpp",
    deps = [
        ":protos_perfetto_config_track_event_protos",
    ],
)

# GN target: //protos/perfetto/config/track_event:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_config_track_event_lite",
    deps = [
        ":protos_perfetto_config_track_event_protos",
    ],
)

# GN target: //protos/perfetto/config/track_event:zero
perfetto_proto_library(
    name = "protos_perfetto_config_track_event_protos",
    srcs = [
        "protos/perfetto/config/track_event/track_event_config.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/config/track_event:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_track_event_zero",
    deps = [
        ":protos_perfetto_config_track_event_protos",
    ],
)

# GN target: //protos/perfetto/config:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_config_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_protos",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_zero",
    ],
)

# GN target: //protos/perfetto/ipc:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_ipc_cpp",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_android_cpp",
        ":protos_perfetto_config_cpp",
        ":protos_perfetto_config_ftrace_cpp",
        ":protos_perfetto_config_gpu_cpp",
        ":protos_perfetto_config_inode_file_cpp",
        ":protos_perfetto_config_interceptors_cpp",
        ":protos_perfetto_config_power_cpp",
        ":protos_perfetto_config_process_stats_cpp",
        ":protos_perfetto_config_profiling_cpp",
        ":protos_perfetto_config_sys_stats_cpp",
        ":protos_perfetto_config_track_event_cpp",
        ":protos_perfetto_ipc_protos",
    ],
)

# GN target: //protos/perfetto/ipc:ipc
perfetto_cc_ipc_library(
    name = "protos_perfetto_ipc_ipc",
    deps = [
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_config_android_cpp",
        ":protos_perfetto_config_cpp",
        ":protos_perfetto_config_ftrace_cpp",
        ":protos_perfetto_config_gpu_cpp",
        ":protos_perfetto_config_inode_file_cpp",
        ":protos_perfetto_config_interceptors_cpp",
        ":protos_perfetto_config_power_cpp",
        ":protos_perfetto_config_process_stats_cpp",
        ":protos_perfetto_config_profiling_cpp",
        ":protos_perfetto_config_sys_stats_cpp",
        ":protos_perfetto_config_track_event_cpp",
        ":protos_perfetto_ipc_cpp",
        ":protos_perfetto_ipc_protos",
    ],
)

# GN target: //protos/perfetto/ipc:ipc
perfetto_proto_library(
    name = "protos_perfetto_ipc_protos",
    srcs = [
        "protos/perfetto/ipc/consumer_port.proto",
        "protos/perfetto/ipc/producer_port.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
        ":protos_perfetto_config_android_protos",
        ":protos_perfetto_config_ftrace_protos",
        ":protos_perfetto_config_gpu_protos",
        ":protos_perfetto_config_inode_file_protos",
        ":protos_perfetto_config_interceptors_protos",
        ":protos_perfetto_config_power_protos",
        ":protos_perfetto_config_process_stats_protos",
        ":protos_perfetto_config_profiling_protos",
        ":protos_perfetto_config_protos",
        ":protos_perfetto_config_sys_stats_protos",
        ":protos_perfetto_config_track_event_protos",
    ],
)

# GN target: //protos/perfetto/ipc:wire_protocol_cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_ipc_wire_protocol_cpp",
    deps = [
        ":protos_perfetto_ipc_wire_protocol_protos",
    ],
)

# GN target: //protos/perfetto/ipc:wire_protocol_cpp
perfetto_proto_library(
    name = "protos_perfetto_ipc_wire_protocol_protos",
    srcs = [
        "protos/perfetto/ipc/wire_protocol.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/metrics/android:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_metrics_android_lite",
    deps = [
        ":protos_perfetto_metrics_android_protos",
    ],
)

# GN target: //protos/perfetto/metrics/android:source_set
perfetto_proto_library(
    name = "protos_perfetto_metrics_android_protos",
    srcs = [
        "protos/perfetto/metrics/android/batt_metric.proto",
        "protos/perfetto/metrics/android/camera_metric.proto",
        "protos/perfetto/metrics/android/camera_unagg_metric.proto",
        "protos/perfetto/metrics/android/cpu_metric.proto",
        "protos/perfetto/metrics/android/display_metrics.proto",
        "protos/perfetto/metrics/android/dma_heap_metric.proto",
        "protos/perfetto/metrics/android/dvfs_metric.proto",
        "protos/perfetto/metrics/android/fastrpc_metric.proto",
        "protos/perfetto/metrics/android/g2d_metric.proto",
        "protos/perfetto/metrics/android/gpu_metric.proto",
        "protos/perfetto/metrics/android/hwcomposer.proto",
        "protos/perfetto/metrics/android/hwui_metric.proto",
        "protos/perfetto/metrics/android/ion_metric.proto",
        "protos/perfetto/metrics/android/irq_runtime_metric.proto",
        "protos/perfetto/metrics/android/jank_metric.proto",
        "protos/perfetto/metrics/android/java_heap_histogram.proto",
        "protos/perfetto/metrics/android/java_heap_stats.proto",
        "protos/perfetto/metrics/android/lmk_metric.proto",
        "protos/perfetto/metrics/android/lmk_reason_metric.proto",
        "protos/perfetto/metrics/android/mem_metric.proto",
        "protos/perfetto/metrics/android/mem_unagg_metric.proto",
        "protos/perfetto/metrics/android/multiuser_metric.proto",
        "protos/perfetto/metrics/android/network_metric.proto",
        "protos/perfetto/metrics/android/package_list.proto",
        "protos/perfetto/metrics/android/powrails_metric.proto",
        "protos/perfetto/metrics/android/process_metadata.proto",
        "protos/perfetto/metrics/android/profiler_smaps.proto",
        "protos/perfetto/metrics/android/rt_runtime_metric.proto",
        "protos/perfetto/metrics/android/simpleperf.proto",
        "protos/perfetto/metrics/android/startup_metric.proto",
        "protos/perfetto/metrics/android/surfaceflinger.proto",
        "protos/perfetto/metrics/android/sysui_cuj_metrics.proto",
        "protos/perfetto/metrics/android/task_names.proto",
        "protos/perfetto/metrics/android/thread_time_in_state_metric.proto",
        "protos/perfetto/metrics/android/trace_quality.proto",
        "protos/perfetto/metrics/android/unsymbolized_frames.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
)

# GN target: //protos/perfetto/metrics/chrome:descriptor
perfetto_proto_descriptor(
    name = "protos_perfetto_metrics_chrome_descriptor",
    deps = [
        ":protos_perfetto_metrics_chrome_protos",
    ],
    outs = [
        "protos_perfetto_metrics_chrome_descriptor.bin",
    ],
)

# GN target: //protos/perfetto/metrics/chrome:source_set
perfetto_proto_library(
    name = "protos_perfetto_metrics_chrome_protos",
    srcs = [
        "protos/perfetto/metrics/chrome/all_chrome_metrics.proto",
        "protos/perfetto/metrics/chrome/blink_gc_metric.proto",
        "protos/perfetto/metrics/chrome/dropped_frames.proto",
        "protos/perfetto/metrics/chrome/frame_times.proto",
        "protos/perfetto/metrics/chrome/media_metric.proto",
        "protos/perfetto/metrics/chrome/reported_by_page.proto",
        "protos/perfetto/metrics/chrome/scroll_jank.proto",
        "protos/perfetto/metrics/chrome/test_chrome_metric.proto",
        "protos/perfetto/metrics/chrome/touch_jank.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_metrics_android_protos",
        ":protos_perfetto_metrics_custom_options_protos",
        ":protos_perfetto_metrics_protos",
    ] + PERFETTO_CONFIG.deps.protobuf_descriptor_proto,
)

# GN target: //protos/perfetto/metrics:custom_options_source_set
perfetto_proto_library(
    name = "protos_perfetto_metrics_custom_options_protos",
    srcs = [
        "protos/perfetto/metrics/custom_options.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
    ] + PERFETTO_CONFIG.deps.protobuf_descriptor_proto,
)

# GN target: //protos/perfetto/metrics:descriptor
perfetto_proto_descriptor(
    name = "protos_perfetto_metrics_descriptor",
    deps = [
        ":protos_perfetto_metrics_protos",
    ],
    outs = [
        "protos_perfetto_metrics_descriptor.bin",
    ],
)

# GN target: //protos/perfetto/metrics:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_metrics_lite",
    deps = [
        ":protos_perfetto_metrics_protos",
    ],
)

# GN target: //protos/perfetto/metrics:source_set
perfetto_proto_library(
    name = "protos_perfetto_metrics_protos",
    srcs = [
        "protos/perfetto/metrics/metrics.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
    deps = [
        ":protos_perfetto_metrics_android_protos",
    ],
)

# GN target: //protos/perfetto/trace/android:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_android_lite",
    deps = [
        ":protos_perfetto_trace_android_protos",
    ],
)

# GN target: //protos/perfetto/trace/android:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_android_protos",
    srcs = [
        "protos/perfetto/trace/android/android_log.proto",
        "protos/perfetto/trace/android/frame_timeline_event.proto",
        "protos/perfetto/trace/android/gpu_mem_event.proto",
        "protos/perfetto/trace/android/graphics_frame_event.proto",
        "protos/perfetto/trace/android/initial_display_state.proto",
        "protos/perfetto/trace/android/packages_list.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/trace/android:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_android_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_android_protos",
    ],
)

# GN target: //protos/perfetto/trace/chrome:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_chrome_lite",
    deps = [
        ":protos_perfetto_trace_chrome_protos",
    ],
)

# GN target: //protos/perfetto/trace/chrome:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_chrome_protos",
    srcs = [
        "protos/perfetto/trace/chrome/chrome_benchmark_metadata.proto",
        "protos/perfetto/trace/chrome/chrome_metadata.proto",
        "protos/perfetto/trace/chrome/chrome_trace_event.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/chrome:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_chrome_zero",
    deps = [
        ":protos_perfetto_trace_chrome_protos",
    ],
)

# GN target: //protos/perfetto/trace:descriptor
perfetto_proto_descriptor(
    name = "protos_perfetto_trace_descriptor",
    deps = [
        ":protos_perfetto_trace_protos",
    ],
    outs = [
        "protos_perfetto_trace_descriptor.bin",
    ],
)

# GN target: //protos/perfetto/trace/filesystem:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_filesystem_lite",
    deps = [
        ":protos_perfetto_trace_filesystem_protos",
    ],
)

# GN target: //protos/perfetto/trace/filesystem:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_filesystem_protos",
    srcs = [
        "protos/perfetto/trace/filesystem/inode_file_map.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/filesystem:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_filesystem_zero",
    deps = [
        ":protos_perfetto_trace_filesystem_protos",
    ],
)

# GN target: //protos/perfetto/trace/ftrace:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_ftrace_lite",
    deps = [
        ":protos_perfetto_trace_ftrace_protos",
    ],
)

# GN target: //protos/perfetto/trace/ftrace:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_ftrace_protos",
    srcs = [
        "protos/perfetto/trace/ftrace/binder.proto",
        "protos/perfetto/trace/ftrace/block.proto",
        "protos/perfetto/trace/ftrace/cgroup.proto",
        "protos/perfetto/trace/ftrace/clk.proto",
        "protos/perfetto/trace/ftrace/compaction.proto",
        "protos/perfetto/trace/ftrace/cpuhp.proto",
        "protos/perfetto/trace/ftrace/dmabuf_heap.proto",
        "protos/perfetto/trace/ftrace/dpu.proto",
        "protos/perfetto/trace/ftrace/ext4.proto",
        "protos/perfetto/trace/ftrace/f2fs.proto",
        "protos/perfetto/trace/ftrace/fastrpc.proto",
        "protos/perfetto/trace/ftrace/fence.proto",
        "protos/perfetto/trace/ftrace/filemap.proto",
        "protos/perfetto/trace/ftrace/ftrace.proto",
        "protos/perfetto/trace/ftrace/ftrace_event.proto",
        "protos/perfetto/trace/ftrace/ftrace_event_bundle.proto",
        "protos/perfetto/trace/ftrace/ftrace_stats.proto",
        "protos/perfetto/trace/ftrace/g2d.proto",
        "protos/perfetto/trace/ftrace/generic.proto",
        "protos/perfetto/trace/ftrace/gpu_mem.proto",
        "protos/perfetto/trace/ftrace/i2c.proto",
        "protos/perfetto/trace/ftrace/ion.proto",
        "protos/perfetto/trace/ftrace/ipi.proto",
        "protos/perfetto/trace/ftrace/irq.proto",
        "protos/perfetto/trace/ftrace/kmem.proto",
        "protos/perfetto/trace/ftrace/lowmemorykiller.proto",
        "protos/perfetto/trace/ftrace/mali.proto",
        "protos/perfetto/trace/ftrace/mdss.proto",
        "protos/perfetto/trace/ftrace/mm_event.proto",
        "protos/perfetto/trace/ftrace/net.proto",
        "protos/perfetto/trace/ftrace/oom.proto",
        "protos/perfetto/trace/ftrace/power.proto",
        "protos/perfetto/trace/ftrace/raw_syscalls.proto",
        "protos/perfetto/trace/ftrace/regulator.proto",
        "protos/perfetto/trace/ftrace/sched.proto",
        "protos/perfetto/trace/ftrace/scm.proto",
        "protos/perfetto/trace/ftrace/sde.proto",
        "protos/perfetto/trace/ftrace/signal.proto",
        "protos/perfetto/trace/ftrace/sync.proto",
        "protos/perfetto/trace/ftrace/synthetic.proto",
        "protos/perfetto/trace/ftrace/systrace.proto",
        "protos/perfetto/trace/ftrace/task.proto",
        "protos/perfetto/trace/ftrace/test_bundle_wrapper.proto",
        "protos/perfetto/trace/ftrace/thermal.proto",
        "protos/perfetto/trace/ftrace/vmscan.proto",
        "protos/perfetto/trace/ftrace/workqueue.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/ftrace:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_ftrace_zero",
    deps = [
        ":protos_perfetto_trace_ftrace_protos",
    ],
)

# GN target: //protos/perfetto/trace/gpu:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_gpu_lite",
    deps = [
        ":protos_perfetto_trace_gpu_protos",
    ],
)

# GN target: //protos/perfetto/trace/gpu:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_gpu_protos",
    srcs = [
        "protos/perfetto/trace/gpu/gpu_counter_event.proto",
        "protos/perfetto/trace/gpu/gpu_log.proto",
        "protos/perfetto/trace/gpu/gpu_render_stage_event.proto",
        "protos/perfetto/trace/gpu/vulkan_api_event.proto",
        "protos/perfetto/trace/gpu/vulkan_memory_event.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/trace/gpu:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_gpu_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_gpu_protos",
    ],
)

# GN target: //protos/perfetto/trace/interned_data:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_interned_data_lite",
    deps = [
        ":protos_perfetto_trace_interned_data_protos",
    ],
)

# GN target: //protos/perfetto/trace/interned_data:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_interned_data_protos",
    srcs = [
        "protos/perfetto/trace/interned_data/interned_data.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
        ":protos_perfetto_trace_gpu_protos",
        ":protos_perfetto_trace_profiling_protos",
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace/interned_data:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_interned_data_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_protos",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_track_event_zero",
    ],
)

# GN target: //protos/perfetto/trace:merged_trace
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_merged_trace",
    deps = [
        ":protos_perfetto_trace_merged_trace_protos",
    ],
)

# GN target: //protos/perfetto/trace:merged_trace
perfetto_proto_library(
    name = "protos_perfetto_trace_merged_trace_protos",
    srcs = [
        "protos/perfetto/trace/perfetto_trace.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
)

# GN target: //protos/perfetto/trace:minimal_lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_minimal_lite",
    deps = [
        ":protos_perfetto_trace_minimal_protos",
    ],
)

# GN target: //protos/perfetto/trace:minimal_zero
perfetto_proto_library(
    name = "protos_perfetto_trace_minimal_protos",
    srcs = [
        "protos/perfetto/trace/clock_snapshot.proto",
        "protos/perfetto/trace/system_info.proto",
        "protos/perfetto/trace/trigger.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
        ":protos_perfetto_config_android_protos",
        ":protos_perfetto_config_ftrace_protos",
        ":protos_perfetto_config_gpu_protos",
        ":protos_perfetto_config_inode_file_protos",
        ":protos_perfetto_config_interceptors_protos",
        ":protos_perfetto_config_power_protos",
        ":protos_perfetto_config_process_stats_protos",
        ":protos_perfetto_config_profiling_protos",
        ":protos_perfetto_config_protos",
        ":protos_perfetto_config_sys_stats_protos",
        ":protos_perfetto_config_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace:minimal_zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_minimal_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_trace_minimal_protos",
    ],
)

# GN target: //protos/perfetto/trace:non_minimal_lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_non_minimal_lite",
    deps = [
        ":protos_perfetto_trace_non_minimal_protos",
    ],
)

# GN target: //protos/perfetto/trace:non_minimal_zero
perfetto_proto_library(
    name = "protos_perfetto_trace_non_minimal_protos",
    srcs = [
        "protos/perfetto/trace/extension_descriptor.proto",
        "protos/perfetto/trace/memory_graph.proto",
        "protos/perfetto/trace/test_event.proto",
        "protos/perfetto/trace/test_extensions.proto",
        "protos/perfetto/trace/trace.proto",
        "protos/perfetto/trace/trace_packet.proto",
        "protos/perfetto/trace/trace_packet_defaults.proto",
        "protos/perfetto/trace/ui_state.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
    deps = [
        ":protos_perfetto_common_protos",
        ":protos_perfetto_config_android_protos",
        ":protos_perfetto_config_ftrace_protos",
        ":protos_perfetto_config_gpu_protos",
        ":protos_perfetto_config_inode_file_protos",
        ":protos_perfetto_config_interceptors_protos",
        ":protos_perfetto_config_power_protos",
        ":protos_perfetto_config_process_stats_protos",
        ":protos_perfetto_config_profiling_protos",
        ":protos_perfetto_config_protos",
        ":protos_perfetto_config_sys_stats_protos",
        ":protos_perfetto_config_track_event_protos",
        ":protos_perfetto_trace_android_protos",
        ":protos_perfetto_trace_chrome_protos",
        ":protos_perfetto_trace_filesystem_protos",
        ":protos_perfetto_trace_ftrace_protos",
        ":protos_perfetto_trace_gpu_protos",
        ":protos_perfetto_trace_interned_data_protos",
        ":protos_perfetto_trace_minimal_protos",
        ":protos_perfetto_trace_perfetto_protos",
        ":protos_perfetto_trace_power_protos",
        ":protos_perfetto_trace_profiling_protos",
        ":protos_perfetto_trace_ps_protos",
        ":protos_perfetto_trace_sys_stats_protos",
        ":protos_perfetto_trace_system_info_protos",
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace:non_minimal_zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_non_minimal_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_trace_android_zero",
        ":protos_perfetto_trace_chrome_zero",
        ":protos_perfetto_trace_filesystem_zero",
        ":protos_perfetto_trace_ftrace_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_zero",
        ":protos_perfetto_trace_minimal_zero",
        ":protos_perfetto_trace_non_minimal_protos",
        ":protos_perfetto_trace_perfetto_zero",
        ":protos_perfetto_trace_power_zero",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_ps_zero",
        ":protos_perfetto_trace_sys_stats_zero",
        ":protos_perfetto_trace_system_info_zero",
        ":protos_perfetto_trace_track_event_zero",
    ],
)

# GN target: //protos/perfetto/trace/perfetto:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_perfetto_lite",
    deps = [
        ":protos_perfetto_trace_perfetto_protos",
    ],
)

# GN target: //protos/perfetto/trace/perfetto:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_perfetto_protos",
    srcs = [
        "protos/perfetto/trace/perfetto/perfetto_metatrace.proto",
        "protos/perfetto/trace/perfetto/tracing_service_event.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/perfetto:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_perfetto_zero",
    deps = [
        ":protos_perfetto_trace_perfetto_protos",
    ],
)

# GN target: //protos/perfetto/trace/power:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_power_lite",
    deps = [
        ":protos_perfetto_trace_power_protos",
    ],
)

# GN target: //protos/perfetto/trace/power:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_power_protos",
    srcs = [
        "protos/perfetto/trace/power/android_energy_estimation_breakdown.proto",
        "protos/perfetto/trace/power/battery_counters.proto",
        "protos/perfetto/trace/power/power_rails.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/trace/power:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_power_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_power_protos",
    ],
)

# GN target: //protos/perfetto/trace_processor:metrics_impl_zero
perfetto_proto_library(
    name = "protos_perfetto_trace_processor_metrics_impl_protos",
    srcs = [
        "protos/perfetto/trace_processor/metrics_impl.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace_processor:metrics_impl_zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_processor_metrics_impl_zero",
    deps = [
        ":protos_perfetto_trace_processor_metrics_impl_protos",
    ],
)

# GN target: //protos/perfetto/trace_processor:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_processor_protos",
    srcs = [
        "protos/perfetto/trace_processor/trace_processor.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/trace_processor:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_processor_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_processor_protos",
    ],
)

# GN target: //protos/perfetto/trace/profiling:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_profiling_lite",
    deps = [
        ":protos_perfetto_trace_profiling_protos",
    ],
)

# GN target: //protos/perfetto/trace/profiling:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_profiling_protos",
    srcs = [
        "protos/perfetto/trace/profiling/deobfuscation.proto",
        "protos/perfetto/trace/profiling/heap_graph.proto",
        "protos/perfetto/trace/profiling/profile_common.proto",
        "protos/perfetto/trace/profiling/profile_packet.proto",
        "protos/perfetto/trace/profiling/smaps.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/trace/profiling:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_profiling_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_profiling_protos",
    ],
)

# GN target: //protos/perfetto/trace:descriptor
perfetto_proto_library(
    name = "protos_perfetto_trace_protos",
    srcs = [
        "protos/perfetto/trace/trace.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
        ":protos_perfetto_config_android_protos",
        ":protos_perfetto_config_ftrace_protos",
        ":protos_perfetto_config_gpu_protos",
        ":protos_perfetto_config_inode_file_protos",
        ":protos_perfetto_config_interceptors_protos",
        ":protos_perfetto_config_power_protos",
        ":protos_perfetto_config_process_stats_protos",
        ":protos_perfetto_config_profiling_protos",
        ":protos_perfetto_config_protos",
        ":protos_perfetto_config_sys_stats_protos",
        ":protos_perfetto_config_track_event_protos",
        ":protos_perfetto_trace_android_protos",
        ":protos_perfetto_trace_chrome_protos",
        ":protos_perfetto_trace_filesystem_protos",
        ":protos_perfetto_trace_ftrace_protos",
        ":protos_perfetto_trace_gpu_protos",
        ":protos_perfetto_trace_interned_data_protos",
        ":protos_perfetto_trace_minimal_protos",
        ":protos_perfetto_trace_non_minimal_protos",
        ":protos_perfetto_trace_perfetto_protos",
        ":protos_perfetto_trace_power_protos",
        ":protos_perfetto_trace_profiling_protos",
        ":protos_perfetto_trace_ps_protos",
        ":protos_perfetto_trace_sys_stats_protos",
        ":protos_perfetto_trace_system_info_protos",
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace/ps:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_ps_lite",
    deps = [
        ":protos_perfetto_trace_ps_protos",
    ],
)

# GN target: //protos/perfetto/trace/ps:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_ps_protos",
    srcs = [
        "protos/perfetto/trace/ps/process_stats.proto",
        "protos/perfetto/trace/ps/process_tree.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/ps:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_ps_zero",
    deps = [
        ":protos_perfetto_trace_ps_protos",
    ],
)

# GN target: //protos/perfetto/trace/sys_stats:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_sys_stats_lite",
    deps = [
        ":protos_perfetto_trace_sys_stats_protos",
    ],
)

# GN target: //protos/perfetto/trace/sys_stats:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_sys_stats_protos",
    srcs = [
        "protos/perfetto/trace/sys_stats/sys_stats.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_common_protos",
    ],
)

# GN target: //protos/perfetto/trace/sys_stats:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_sys_stats_zero",
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_trace_sys_stats_protos",
    ],
)

# GN target: //protos/perfetto/trace/system_info:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_system_info_lite",
    deps = [
        ":protos_perfetto_trace_system_info_protos",
    ],
)

# GN target: //protos/perfetto/trace/system_info:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_system_info_protos",
    srcs = [
        "protos/perfetto/trace/system_info/cpu_info.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/system_info:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_system_info_zero",
    deps = [
        ":protos_perfetto_trace_system_info_protos",
    ],
)

# GN target: //protos/perfetto/trace/track_event:cpp
perfetto_cc_protocpp_library(
    name = "protos_perfetto_trace_track_event_cpp",
    deps = [
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace/track_event:lite
perfetto_cc_proto_library(
    name = "protos_perfetto_trace_track_event_lite",
    deps = [
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace/track_event:zero
perfetto_proto_library(
    name = "protos_perfetto_trace_track_event_protos",
    srcs = [
        "protos/perfetto/trace/track_event/chrome_application_state_info.proto",
        "protos/perfetto/trace/track_event/chrome_compositor_scheduler_state.proto",
        "protos/perfetto/trace/track_event/chrome_content_settings_event_info.proto",
        "protos/perfetto/trace/track_event/chrome_frame_reporter.proto",
        "protos/perfetto/trace/track_event/chrome_histogram_sample.proto",
        "protos/perfetto/trace/track_event/chrome_keyed_service.proto",
        "protos/perfetto/trace/track_event/chrome_latency_info.proto",
        "protos/perfetto/trace/track_event/chrome_legacy_ipc.proto",
        "protos/perfetto/trace/track_event/chrome_message_pump.proto",
        "protos/perfetto/trace/track_event/chrome_mojo_event_info.proto",
        "protos/perfetto/trace/track_event/chrome_process_descriptor.proto",
        "protos/perfetto/trace/track_event/chrome_renderer_scheduler_state.proto",
        "protos/perfetto/trace/track_event/chrome_thread_descriptor.proto",
        "protos/perfetto/trace/track_event/chrome_user_event.proto",
        "protos/perfetto/trace/track_event/chrome_window_handle_event_info.proto",
        "protos/perfetto/trace/track_event/counter_descriptor.proto",
        "protos/perfetto/trace/track_event/debug_annotation.proto",
        "protos/perfetto/trace/track_event/log_message.proto",
        "protos/perfetto/trace/track_event/process_descriptor.proto",
        "protos/perfetto/trace/track_event/source_location.proto",
        "protos/perfetto/trace/track_event/task_execution.proto",
        "protos/perfetto/trace/track_event/thread_descriptor.proto",
        "protos/perfetto/trace/track_event/track_descriptor.proto",
        "protos/perfetto/trace/track_event/track_event.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/perfetto/trace/track_event:track_event_descriptor
perfetto_proto_descriptor(
    name = "protos_perfetto_trace_track_event_track_event_descriptor",
    deps = [
        ":protos_perfetto_trace_track_event_track_event_protos",
    ],
    outs = [
        "protos_perfetto_trace_track_event_track_event_descriptor.bin",
    ],
)

# GN target: //protos/perfetto/trace/track_event:track_event_descriptor
perfetto_proto_library(
    name = "protos_perfetto_trace_track_event_track_event_protos",
    srcs = [
        "protos/perfetto/trace/track_event/track_event.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/perfetto/trace/track_event:zero
perfetto_cc_protozero_library(
    name = "protos_perfetto_trace_track_event_zero",
    deps = [
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/third_party/chromium:chrome_track_event_descriptor
perfetto_proto_descriptor(
    name = "protos_third_party_chromium_chrome_track_event_descriptor",
    deps = [
        ":protos_third_party_chromium_chrome_track_event_protos",
    ],
    outs = [
        "protos_third_party_chromium_chrome_track_event_descriptor.bin",
    ],
)

# GN target: //protos/third_party/chromium:chrome_track_event_descriptor
perfetto_proto_library(
    name = "protos_third_party_chromium_chrome_track_event_protos",
    srcs = [
        "protos/third_party/chromium/chrome_track_event.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
    deps = [
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/third_party/chromium:lite
perfetto_cc_proto_library(
    name = "protos_third_party_chromium_lite",
    deps = [
        ":protos_third_party_chromium_protos",
    ],
)

# GN target: //protos/third_party/chromium:lite
perfetto_proto_library(
    name = "protos_third_party_chromium_protos",
    srcs = [
        "protos/third_party/chromium/chrome_track_event.proto",
    ],
    visibility = PERFETTO_CONFIG.public_visibility,
    deps = [
        ":protos_perfetto_trace_track_event_protos",
    ],
)

# GN target: //protos/third_party/pprof:zero
perfetto_proto_library(
    name = "protos_third_party_pprof_protos",
    srcs = [
        "protos/third_party/pprof/profile.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# GN target: //protos/third_party/pprof:zero
perfetto_cc_protozero_library(
    name = "protos_third_party_pprof_zero",
    deps = [
        ":protos_third_party_pprof_protos",
    ],
)

# GN target: //src/perfetto_cmd:protos
perfetto_cc_protocpp_library(
    name = "src_perfetto_cmd_protos",
    deps = [
        ":src_perfetto_cmd_protos_protos",
    ],
)

# GN target: //src/perfetto_cmd:protos
perfetto_proto_library(
    name = "src_perfetto_cmd_protos_protos",
    srcs = [
        "src/perfetto_cmd/perfetto_cmd_state.proto",
    ],
    visibility = [
        PERFETTO_CONFIG.proto_library_visibility,
    ],
)

# ##############################################################################
# Public targets
# ##############################################################################

# GN target: //:libperfetto_client_experimental
perfetto_cc_library(
    name = "libperfetto_client_experimental",
    srcs = [
        ":src_android_stats_android_stats",
        ":src_android_stats_perfetto_atoms",
        ":src_protozero_filtering_bytecode_common",
        ":src_protozero_filtering_bytecode_parser",
        ":src_protozero_filtering_message_filter",
        ":src_tracing_client_api_without_backends",
        ":src_tracing_common",
        ":src_tracing_core_core",
        ":src_tracing_core_service",
        ":src_tracing_in_process_backend",
        ":src_tracing_ipc_common",
        ":src_tracing_ipc_consumer_consumer",
        ":src_tracing_ipc_default_socket",
        ":src_tracing_ipc_producer_producer",
        ":src_tracing_ipc_service_service",
        ":src_tracing_platform_impl",
        ":src_tracing_system_backend",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_ipc_ipc",
        ":include_perfetto_ext_tracing_core_core",
        ":include_perfetto_ext_tracing_ipc_ipc",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_tracing_core_core",
        ":include_perfetto_tracing_core_forward_decls",
        ":include_perfetto_tracing_tracing",
        "include/perfetto/tracing.h",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
        ":perfetto_ipc",
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_cpp",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_cpp",
        ":protos_perfetto_config_ftrace_cpp",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_cpp",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_cpp",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_cpp",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_cpp",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_cpp",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_cpp",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_cpp",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_cpp",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_ipc_cpp",
        ":protos_perfetto_ipc_ipc",
        ":protos_perfetto_trace_android_zero",
        ":protos_perfetto_trace_chrome_zero",
        ":protos_perfetto_trace_filesystem_zero",
        ":protos_perfetto_trace_ftrace_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_zero",
        ":protos_perfetto_trace_minimal_zero",
        ":protos_perfetto_trace_non_minimal_zero",
        ":protos_perfetto_trace_perfetto_zero",
        ":protos_perfetto_trace_power_zero",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_ps_zero",
        ":protos_perfetto_trace_sys_stats_zero",
        ":protos_perfetto_trace_system_info_zero",
        ":protos_perfetto_trace_track_event_cpp",
        ":protos_perfetto_trace_track_event_zero",
        ":protozero",
        ":src_base_base",
    ],
    linkstatic = True,
)

# GN target: //src/perfetto_cmd:perfetto
perfetto_cc_binary(
    name = "perfetto",
    srcs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_ipc_ipc",
        ":include_perfetto_ext_traced_traced",
        ":include_perfetto_ext_tracing_core_core",
        ":include_perfetto_ext_tracing_ipc_ipc",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_tracing_core_core",
        ":include_perfetto_tracing_core_forward_decls",
        ":include_perfetto_tracing_tracing",
        ":src_android_stats_android_stats",
        ":src_android_stats_perfetto_atoms",
        ":src_perfetto_cmd_perfetto_cmd",
        ":src_perfetto_cmd_trigger_producer",
        ":src_tracing_common",
        ":src_tracing_core_core",
        ":src_tracing_ipc_common",
        ":src_tracing_ipc_consumer_consumer",
        ":src_tracing_ipc_default_socket",
        ":src_tracing_ipc_producer_producer",
        "src/perfetto_cmd/main.cc",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
        ":perfetto_ipc",
        ":protos_perfetto_common_cpp",
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_cpp",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_cpp",
        ":protos_perfetto_config_ftrace_cpp",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_cpp",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_cpp",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_cpp",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_cpp",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_cpp",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_cpp",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_cpp",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_cpp",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_ipc_cpp",
        ":protos_perfetto_ipc_ipc",
        ":protos_perfetto_trace_android_zero",
        ":protos_perfetto_trace_chrome_zero",
        ":protos_perfetto_trace_filesystem_zero",
        ":protos_perfetto_trace_ftrace_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_zero",
        ":protos_perfetto_trace_minimal_zero",
        ":protos_perfetto_trace_non_minimal_zero",
        ":protos_perfetto_trace_perfetto_zero",
        ":protos_perfetto_trace_power_zero",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_ps_zero",
        ":protos_perfetto_trace_sys_stats_zero",
        ":protos_perfetto_trace_system_info_zero",
        ":protos_perfetto_trace_track_event_cpp",
        ":protos_perfetto_trace_track_event_zero",
        ":protozero",
        ":src_base_base",
        ":src_perfetto_cmd_gen_cc_config_descriptor",
        ":src_perfetto_cmd_protos",
    ] + PERFETTO_CONFIG.deps.zlib,
)

# GN target: //src/trace_processor:trace_processor
perfetto_cc_library(
    name = "trace_processor",
    srcs = [
        ":src_trace_processor_analysis_analysis",
        ":src_trace_processor_db_db",
        ":src_trace_processor_export_json",
        ":src_trace_processor_ftrace_descriptors",
        ":src_trace_processor_importers_common_common",
        ":src_trace_processor_importers_memory_tracker_graph_processor",
        ":src_trace_processor_lib",
        ":src_trace_processor_metatrace",
        ":src_trace_processor_metrics_metrics",
        ":src_trace_processor_sqlite_sqlite",
        ":src_trace_processor_storage_full",
        ":src_trace_processor_storage_minimal",
        ":src_trace_processor_storage_storage",
        ":src_trace_processor_tables_tables",
        ":src_trace_processor_types_types",
        ":src_trace_processor_util_descriptors",
        ":src_trace_processor_util_gzip",
        ":src_trace_processor_util_interned_message_view",
        ":src_trace_processor_util_proto_to_args_parser",
        ":src_trace_processor_util_protozero_to_text",
        ":src_trace_processor_util_util",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_trace_processor_export_json",
        ":include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
        ":include_perfetto_ext_traced_sys_stats_counters",
        ":include_perfetto_trace_processor_basic_types",
        ":include_perfetto_trace_processor_storage",
        ":include_perfetto_trace_processor_trace_processor",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
               ":protos_perfetto_common_zero",
               ":protos_perfetto_config_android_zero",
               ":protos_perfetto_config_ftrace_zero",
               ":protos_perfetto_config_gpu_zero",
               ":protos_perfetto_config_inode_file_zero",
               ":protos_perfetto_config_interceptors_zero",
               ":protos_perfetto_config_power_zero",
               ":protos_perfetto_config_process_stats_zero",
               ":protos_perfetto_config_profiling_zero",
               ":protos_perfetto_config_sys_stats_zero",
               ":protos_perfetto_config_track_event_zero",
               ":protos_perfetto_config_zero",
               ":protos_perfetto_trace_android_zero",
               ":protos_perfetto_trace_chrome_zero",
               ":protos_perfetto_trace_filesystem_zero",
               ":protos_perfetto_trace_ftrace_zero",
               ":protos_perfetto_trace_gpu_zero",
               ":protos_perfetto_trace_interned_data_zero",
               ":protos_perfetto_trace_minimal_zero",
               ":protos_perfetto_trace_non_minimal_zero",
               ":protos_perfetto_trace_perfetto_zero",
               ":protos_perfetto_trace_power_zero",
               ":protos_perfetto_trace_processor_metrics_impl_zero",
               ":protos_perfetto_trace_processor_zero",
               ":protos_perfetto_trace_profiling_zero",
               ":protos_perfetto_trace_ps_zero",
               ":protos_perfetto_trace_sys_stats_zero",
               ":protos_perfetto_trace_system_info_zero",
               ":protos_perfetto_trace_track_event_zero",
               ":protozero",
               ":src_base_base",
               ":src_trace_processor_containers_containers",
               ":src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
               ":src_trace_processor_importers_gen_cc_config_descriptor",
               ":src_trace_processor_importers_gen_cc_track_event_descriptor",
               ":src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
               ":src_trace_processor_metrics_gen_cc_metrics_descriptor",
           ] + PERFETTO_CONFIG.deps.jsoncpp +
           PERFETTO_CONFIG.deps.sqlite +
           PERFETTO_CONFIG.deps.sqlite_ext_percentile +
           PERFETTO_CONFIG.deps.zlib + [
        ":cc_amalgamated_sql_metrics",
    ],
    linkstatic = True,
)

# GN target: //src/trace_processor:trace_processor_shell
perfetto_cc_binary(
    name = "trace_processor_shell",
    srcs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_trace_processor_export_json",
        ":include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
        ":include_perfetto_ext_traced_sys_stats_counters",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_trace_processor_basic_types",
        ":include_perfetto_trace_processor_storage",
        ":include_perfetto_trace_processor_trace_processor",
        ":src_profiling_deobfuscator",
        ":src_profiling_symbolizer_symbolize_database",
        ":src_profiling_symbolizer_symbolizer",
        ":src_protozero_proto_ring_buffer",
        ":src_trace_processor_analysis_analysis",
        ":src_trace_processor_db_db",
        ":src_trace_processor_export_json",
        ":src_trace_processor_ftrace_descriptors",
        ":src_trace_processor_importers_common_common",
        ":src_trace_processor_importers_memory_tracker_graph_processor",
        ":src_trace_processor_lib",
        ":src_trace_processor_metatrace",
        ":src_trace_processor_metrics_metrics",
        ":src_trace_processor_rpc_httpd",
        ":src_trace_processor_rpc_rpc",
        ":src_trace_processor_sqlite_sqlite",
        ":src_trace_processor_storage_full",
        ":src_trace_processor_storage_minimal",
        ":src_trace_processor_storage_storage",
        ":src_trace_processor_tables_tables",
        ":src_trace_processor_types_types",
        ":src_trace_processor_util_descriptors",
        ":src_trace_processor_util_gzip",
        ":src_trace_processor_util_interned_message_view",
        ":src_trace_processor_util_proto_to_args_parser",
        ":src_trace_processor_util_protozero_to_text",
        ":src_trace_processor_util_util",
        "src/trace_processor/trace_processor_shell.cc",
        "src/trace_processor/util/proto_to_json.cc",
        "src/trace_processor/util/proto_to_json.h",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
               ":protos_perfetto_common_zero",
               ":protos_perfetto_config_android_zero",
               ":protos_perfetto_config_ftrace_zero",
               ":protos_perfetto_config_gpu_zero",
               ":protos_perfetto_config_inode_file_zero",
               ":protos_perfetto_config_interceptors_zero",
               ":protos_perfetto_config_power_zero",
               ":protos_perfetto_config_process_stats_zero",
               ":protos_perfetto_config_profiling_zero",
               ":protos_perfetto_config_sys_stats_zero",
               ":protos_perfetto_config_track_event_zero",
               ":protos_perfetto_config_zero",
               ":protos_perfetto_trace_android_zero",
               ":protos_perfetto_trace_chrome_zero",
               ":protos_perfetto_trace_filesystem_zero",
               ":protos_perfetto_trace_ftrace_zero",
               ":protos_perfetto_trace_gpu_zero",
               ":protos_perfetto_trace_interned_data_zero",
               ":protos_perfetto_trace_minimal_zero",
               ":protos_perfetto_trace_non_minimal_zero",
               ":protos_perfetto_trace_perfetto_zero",
               ":protos_perfetto_trace_power_zero",
               ":protos_perfetto_trace_processor_metrics_impl_zero",
               ":protos_perfetto_trace_processor_zero",
               ":protos_perfetto_trace_profiling_zero",
               ":protos_perfetto_trace_ps_zero",
               ":protos_perfetto_trace_sys_stats_zero",
               ":protos_perfetto_trace_system_info_zero",
               ":protos_perfetto_trace_track_event_zero",
               ":protozero",
               ":src_base_base",
               ":src_base_http_http",
               ":src_trace_processor_containers_containers",
               ":src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
               ":src_trace_processor_importers_gen_cc_config_descriptor",
               ":src_trace_processor_importers_gen_cc_track_event_descriptor",
               ":src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
               ":src_trace_processor_metrics_gen_cc_metrics_descriptor",
           ] + PERFETTO_CONFIG.deps.jsoncpp +
           PERFETTO_CONFIG.deps.linenoise +
           PERFETTO_CONFIG.deps.protobuf_full +
           PERFETTO_CONFIG.deps.sqlite +
           PERFETTO_CONFIG.deps.sqlite_ext_percentile +
           PERFETTO_CONFIG.deps.zlib + [
        ":cc_amalgamated_sql_metrics",
    ],
)

# GN target: //src/traced/probes:traced_probes
perfetto_cc_binary(
    name = "traced_probes",
    srcs = [
        ":include_perfetto_ext_traced_traced",
        "src/traced/probes/main.cc",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
        ":libperfetto",
    ],
)

# GN target: //src/traced/service:traced
perfetto_cc_binary(
    name = "traced",
    srcs = [
        ":include_perfetto_ext_traced_traced",
        "src/traced/service/main.cc",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
        ":libperfetto",
    ],
)

# GN target: //tools/trace_to_text:libpprofbuilder
perfetto_cc_library(
    name = "libpprofbuilder",
    srcs = [
        ":src_profiling_deobfuscator",
        ":src_profiling_symbolizer_symbolize_database",
        ":src_profiling_symbolizer_symbolizer",
        ":tools_trace_to_text_pprofbuilder",
        ":tools_trace_to_text_utils",
    ],
    hdrs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_profiling_pprof_builder",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_trace_processor_basic_types",
        ":include_perfetto_trace_processor_storage",
        ":include_perfetto_trace_processor_trace_processor",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
        ":protos_perfetto_common_zero",
        ":protos_perfetto_config_android_zero",
        ":protos_perfetto_config_ftrace_zero",
        ":protos_perfetto_config_gpu_zero",
        ":protos_perfetto_config_inode_file_zero",
        ":protos_perfetto_config_interceptors_zero",
        ":protos_perfetto_config_power_zero",
        ":protos_perfetto_config_process_stats_zero",
        ":protos_perfetto_config_profiling_zero",
        ":protos_perfetto_config_sys_stats_zero",
        ":protos_perfetto_config_track_event_zero",
        ":protos_perfetto_config_zero",
        ":protos_perfetto_trace_android_zero",
        ":protos_perfetto_trace_chrome_zero",
        ":protos_perfetto_trace_filesystem_zero",
        ":protos_perfetto_trace_ftrace_zero",
        ":protos_perfetto_trace_gpu_zero",
        ":protos_perfetto_trace_interned_data_zero",
        ":protos_perfetto_trace_minimal_zero",
        ":protos_perfetto_trace_non_minimal_zero",
        ":protos_perfetto_trace_perfetto_zero",
        ":protos_perfetto_trace_power_zero",
        ":protos_perfetto_trace_profiling_zero",
        ":protos_perfetto_trace_ps_zero",
        ":protos_perfetto_trace_sys_stats_zero",
        ":protos_perfetto_trace_system_info_zero",
        ":protos_perfetto_trace_track_event_zero",
        ":protos_third_party_pprof_zero",
        ":protozero",
        ":src_trace_processor_containers_containers",
    ] + PERFETTO_CONFIG.deps.zlib,
    linkstatic = True,
)

# GN target: //tools/trace_to_text:trace_to_text
perfetto_cc_binary(
    name = "trace_to_text",
    srcs = [
        ":include_perfetto_base_base",
        ":include_perfetto_ext_base_base",
        ":include_perfetto_ext_trace_processor_export_json",
        ":include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
        ":include_perfetto_ext_traced_sys_stats_counters",
        ":include_perfetto_profiling_pprof_builder",
        ":include_perfetto_protozero_protozero",
        ":include_perfetto_trace_processor_basic_types",
        ":include_perfetto_trace_processor_storage",
        ":include_perfetto_trace_processor_trace_processor",
        ":src_profiling_deobfuscator",
        ":src_profiling_symbolizer_symbolize_database",
        ":src_profiling_symbolizer_symbolizer",
        ":src_protozero_proto_ring_buffer",
        ":src_trace_processor_analysis_analysis",
        ":src_trace_processor_db_db",
        ":src_trace_processor_export_json",
        ":src_trace_processor_ftrace_descriptors",
        ":src_trace_processor_importers_common_common",
        ":src_trace_processor_importers_memory_tracker_graph_processor",
        ":src_trace_processor_lib",
        ":src_trace_processor_metatrace",
        ":src_trace_processor_metrics_metrics",
        ":src_trace_processor_sqlite_sqlite",
        ":src_trace_processor_storage_full",
        ":src_trace_processor_storage_minimal",
        ":src_trace_processor_storage_storage",
        ":src_trace_processor_tables_tables",
        ":src_trace_processor_types_types",
        ":src_trace_processor_util_descriptors",
        ":src_trace_processor_util_gzip",
        ":src_trace_processor_util_interned_message_view",
        ":src_trace_processor_util_proto_to_args_parser",
        ":src_trace_processor_util_protozero_to_text",
        ":src_trace_processor_util_util",
        ":tools_trace_to_text_common",
        ":tools_trace_to_text_full",
        ":tools_trace_to_text_pprofbuilder",
        ":tools_trace_to_text_utils",
    ],
    visibility = [
        "//visibility:public",
    ],
    deps = [
               ":protos_perfetto_common_zero",
               ":protos_perfetto_config_android_zero",
               ":protos_perfetto_config_ftrace_zero",
               ":protos_perfetto_config_gpu_zero",
               ":protos_perfetto_config_inode_file_zero",
               ":protos_perfetto_config_interceptors_zero",
               ":protos_perfetto_config_power_zero",
               ":protos_perfetto_config_process_stats_zero",
               ":protos_perfetto_config_profiling_zero",
               ":protos_perfetto_config_sys_stats_zero",
               ":protos_perfetto_config_track_event_zero",
               ":protos_perfetto_config_zero",
               ":protos_perfetto_trace_android_zero",
               ":protos_perfetto_trace_chrome_zero",
               ":protos_perfetto_trace_filesystem_zero",
               ":protos_perfetto_trace_ftrace_zero",
               ":protos_perfetto_trace_gpu_zero",
               ":protos_perfetto_trace_interned_data_zero",
               ":protos_perfetto_trace_minimal_zero",
               ":protos_perfetto_trace_non_minimal_zero",
               ":protos_perfetto_trace_perfetto_zero",
               ":protos_perfetto_trace_power_zero",
               ":protos_perfetto_trace_processor_metrics_impl_zero",
               ":protos_perfetto_trace_processor_zero",
               ":protos_perfetto_trace_profiling_zero",
               ":protos_perfetto_trace_ps_zero",
               ":protos_perfetto_trace_sys_stats_zero",
               ":protos_perfetto_trace_system_info_zero",
               ":protos_perfetto_trace_track_event_zero",
               ":protos_third_party_pprof_zero",
               ":protozero",
               ":src_base_base",
               ":src_trace_processor_containers_containers",
               ":src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
               ":src_trace_processor_importers_gen_cc_config_descriptor",
               ":src_trace_processor_importers_gen_cc_track_event_descriptor",
               ":src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
               ":src_trace_processor_metrics_gen_cc_metrics_descriptor",
               ":tools_trace_to_text_gen_cc_trace_descriptor",
           ] + PERFETTO_CONFIG.deps.jsoncpp +
           PERFETTO_CONFIG.deps.protobuf_full +
           PERFETTO_CONFIG.deps.sqlite +
           PERFETTO_CONFIG.deps.sqlite_ext_percentile +
           PERFETTO_CONFIG.deps.zlib + [
        ":cc_amalgamated_sql_metrics",
    ],
)

# Content from BUILD.extras

build_config_dir_ = "include/perfetto/base/build_configs/bazel"

# Deliberately NOT a perfetto_cc_library, to avoid cyclic deps.
# This is pulled as a default dep by all targets.
perfetto_build_config_cc_library(
    name = "build_config_hdr",
    hdrs = [build_config_dir_ + "/perfetto_build_flags.h"],
    includes = [build_config_dir_],
)

perfetto_cc_library(
    name = "cc_amalgamated_sql_metrics",
    hdrs = ["src/trace_processor/metrics/sql/amalgamated_sql_metrics.h"],
)

perfetto_py_binary(
    name = "gen_amalgamated_sql_metrics_py",
    srcs = [
        "tools/gen_amalgamated_sql_metrics.py",
    ],
    main = "tools/gen_amalgamated_sql_metrics.py",
    python_version = "PY3",
)

perfetto_py_binary(
    name = "gen_cc_proto_descriptor_py",
    srcs = [
        "tools/gen_cc_proto_descriptor.py",
    ],
    main = "tools/gen_cc_proto_descriptor.py",
    python_version = "PY3",
)

perfetto_java_proto_library(
    name = "protos_perfetto_metrics_java",
    deps = [
        ":protos_perfetto_metrics_protos",
    ],
)

perfetto_java_proto_library(
    name = "protos_perfetto_metrics_android_java",
    deps = [
        ":protos_perfetto_metrics_android_protos",
    ],
)

perfetto_java_proto_library(
    name = "protos_perfetto_trace_merged_trace_java",
    deps = [
        ":protos_perfetto_trace_merged_trace_protos",
    ],
)

perfetto_java_proto_library(
    name = "protos_perfetto_config_merged_config_java",
    deps = [
        ":protos_perfetto_config_merged_config_protos",
    ],
)

perfetto_java_lite_proto_library(
    name = "protos_perfetto_config_merged_config_java_lite",
    deps = [
        ":protos_perfetto_config_merged_config_protos",
    ],
)

perfetto_gensignature_internal_only(
    name = "trace_processor_sig",
    srcs = [
        ":trace_processor_shell",
        ":trace_to_text",
    ],
    tags = [
        "__TRACE_PROCESSOR_SIG_TAG1",
        "__TRACE_PROCESSOR_SIG_TAG2",
    ],
)

# This is overridden in google internal builds via
# PERFETTO_CONFIG.deps.version_header (see perfetto_cfg.bzl).
perfetto_cc_library(
    name = "cc_perfetto_version_header",
    hdrs = ["perfetto_version.gen.h"],
)

perfetto_py_binary(
    name = "gen_version_header_py",
    srcs = ["tools/write_version_header.py"],
    data = ["CHANGELOG"],
    main = "tools/write_version_header.py",
    python_version = "PY3",
)
